VERIFYING SIGNATURES FOR VIDEO STREAMS ENCODED IN LAYERS - Patent application
The method provides digital signatures for video streams encoded in layers using a private-public key pair, addressing verification challenges in video surveillance systems by ensuring authenticity and allowing layer removal without increasing bitrate.
Patent Information
- Application Number
- JP2023121309
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2022-08-01
- Filing Date
- 2023-07-26
- Publication Date
- 2025-08-26
- Estimated Expiration
- 2043-07-26
AI Technical Summary
Existing video surveillance systems face challenges in verifying the integrity of encoded video streams, particularly when frames are pruned or tampered with, leading to potential information loss and increased bitrate issues.
A method and system for providing and verifying digital signatures for video streams encoded in layers, using a private-public key pair to hash and encrypt signature data for each layer, allowing verification of the video stream even when layers are removed or deleted.
Enables accurate verification of video streams encoded in layers, ensuring authenticity and allowing successive removal of layers while maintaining verification integrity, without significantly increasing bitrate.
Smart Images

Figure 0007729855000001 
Figure 0007729855000002 
Figure 0007729855000003
Abstract
Description
[Technical Field]
[0001] The embodiments presented herein relate to a method, a transmitter, a computer program, and a computer program product for providing a digital signature to a video stream encoded in layers. The embodiments presented herein further relate to a method, a receiver, a computer program, and a computer program product for verifying a digital signature of a video stream encoded in layers. [Background technology]
[0002] The use of video surveillance has steadily increased, and with it, problems related to the storage of encoded video streams. Even when encoded using compression-efficient encoding schemes, decent-quality video streams consume storage space, both locally at the surveillance camera and in centralized storage (e.g., cloud storage). Storage space is always associated with costs. Encoded video streams often need to be stored until either 1) the encoded video stream is reviewed and deemed unimportant, or 2) a period of time during which the encoded video stream may be relevant has passed. In some facilities, the period of time in question may be set by law. One common rule often applied is to store the encoded video stream for as long as possible, and once available storage space is exhausted, some type of pruning scheme is applied. Pruning here refers to the process of removing video frames or video sequences from the encoded video stream for the purpose of reducing file size; in some technical descriptions, it is called thinning. Necessarily, removing video frames or video sequences from the encoded video stream results in the encoded video stream being considered tampered with. The deletion of video frames or video sequences may also be unintentional. Another example is when pruning or other types of malicious tampering with the encoded video stream is performed by an adversary. The purpose of such malicious tampering may be to delete video frames or video sequences that contain information that is unfavorable to the adversary. Thus, pruning is one example of an encoded video stream being tampered with.
[0003] Therefore, the ability to accurately identify encoded frames that have been tampered with, or to identify where encoded frames have been deleted, is important not only in the context of pruning, but also for identifying other types of tampering.
[0004] Many video security systems implement some form of watermarking at the source, but these watermarking techniques can be easily defeated. As described in U.S. Patent Application Publication No. 2014 / 0010366, without a comprehensive video security system, unauthorized video can become commonplace, creating a major dilemma for security personnel, network administrators, and corporate executives. Protocols should be developed to verify that video has not been tampered with since its creation at its source.
[0005] Thus, U.S. Patent Application Publication No. 2014 / 0010366 discloses a system and method for providing cryptographic video verification. Two documents are generated: a first document contains hashes from all frames in one or more groups of pictures (GOPs); and a second document contains hashes from only I-frames in a set of GOPs. Each document can be signed with the camera's private key before the documents are communicated over a network. When the video is thinned / prune by removing P-frames and B-frames, the second document can be used to verify the I-frames.
[0006] However, as soon as P or B frames are pruned, only the second document is relevant. This means that only I frames can be trusted and should be rendered. If the GOP length is, say, 2 seconds and all P or B frames are pruned, this means that one I frame is sent every 2 seconds, thus reducing the frame rate to 0.5 frames per second. After pruning, when there are 2 seconds between two frames to be rendered, a lot of information can be lost in the video sequence. One possible remedy for this loss of information is to change the GOP format used so that I frames are coded more frequently and therefore sent more frequently. However, this significantly increases the bitrate. Therefore, there is a need for improvements in cryptographic video verification. Summary of the Invention
[0007] The purpose of the embodiments herein is to enable verification of video streams coded in layers.
[0008] According to a first aspect, a method is presented for providing digital signatures for a video stream encoded in layers k=0, ..., K-1. Each of the K layers consists of encoded image frames. The method is performed by a transmitter. The transmitter has access to a private-public key pair. The method includes providing a digital signature for layer k=0 by generating signature data for layer k=0 by hashing the encoded image frames of layer k=0, and generating the digital signature for layer k=0 by encrypting the signature data for layer k=0, or a hash of the signature data, with the private key of the private-public key pair. The method includes providing a respective digital signature for each layer k=1, ..., K-1 by generating signature data for layer k by hashing the encoded image frames of layer k and links to any layers k=0 through k-1 on which layer k depends, and generating the digital signature for layer k by encrypting the signature data for layer k, or a hash of the signature data, with the private key of the private-public key pair. The method includes providing a video stream with digital signatures for all K layers.
[0009] According to a second aspect, a transmitter is presented for providing digital signatures for a video stream encoded in layers k=0, ..., K-1. Each of the K layers consists of encoded image frames. The transmitter has access to a private-public key pair. The transmitter includes processing circuitry. The processing circuitry is configured to cause the transmitter to provide a digital signature for layer k=0 by generating signature data for layer k=0 by hashing an encoded image frame (220a) for layer k=0 and by encrypting the signature data for layer k=0 or a hash of it with the private key of the private-public key pair. The processing circuitry is configured to cause the transmitter to provide a respective digital signature for each layer k=1, ..., K-1 by generating the signature data for layer k by hashing, for each layer k=1, ..., K-1, the encoded image frame of layer k and a link to any layer k=0 through layer k-1 on which layer k depends. The processing circuitry is configured to cause the transmitter to generate a digital signature for layer k by encrypting signature data for layer k, or a hash thereof, with a private key of a private-public key pair. The processing circuitry is configured to cause the transmitter to provide the digital signatures for all K layers to the video stream.
[0010] According to a third aspect, a computer program for providing a digital signature to a video stream encoded in a layer is presented, the computer program comprising computer program code that, when executed on processing circuitry of a transmitter, causes the transmitter to perform the method according to the first aspect.
[0011] According to a fourth aspect, a method is presented for verifying a digital signature of a video stream encoded in layers k=0, ..., K-1. Each of the K layers consists of encoded image frames. The method is performed by a receiver. The receiver has access to the public key of the transmitter's private-public key pair. The method includes verifying the digital signature for layer k=0 by confirming that signature data of the encoded image frame for layer k=0 matches the decrypted digital signature for layer k=0. The decrypted digital signature for layer k=0 is decrypted from the digital signature for layer k=0 using the public key. The method includes verifying each digital signature for layers k=1, ..., K-1 by confirming that signature data of the encoded image frame for layer k and any links to layers k=0 to k-1 on which layer k depends matches the decrypted digital signature for layer k. The decrypted digital signature for layer k is decrypted from the digital signature for layer k using the public key.
[0012] According to a fifth aspect, a receiver is presented for verifying a digital signature of a video stream encoded in layers k=0, ..., K-1. Each of the K layers consists of encoded image frames. The receiver has access to a public key of a transmitter's private-public key pair. The receiver comprises a processing circuit. The processing circuit is configured to cause the receiver to verify the digital signature for layer k=0 by verifying that signature data of the encoded image frame for layer k=0 matches the decrypted digital signature for layer k=0. The decrypted digital signature for layer k=0 is decrypted from the digital signature for layer k=0 using the public key. The processing circuit is configured to cause the receiver to verify each digital signature for layers k=1, ..., K-1 by verifying that signature data of the encoded image frame for layer k and any links to layers k=0 to k-1 on which layer k depends matches the decrypted digital signature for layer k. The decrypted digital signature for layer k has been decrypted from the digital signature for layer k using the public key.
[0013] According to a sixth aspect, there is presented a computer program for verifying a digital signature of a video stream encoded in layers, the computer program comprising computer program code which, when executed on processing circuitry of a receiver, causes the receiver to perform the method according to the fourth aspect.
[0014] According to a seventh aspect, there is provided a computer program product including a computer program according to at least one of the third and sixth aspects and a computer-readable storage medium on which the computer program is stored. The computer-readable storage medium may be a non-transitory computer-readable storage medium.
[0015] Advantageously, these aspects allow verification of the video stream encoded in the layers.
[0016] Advantageously, these aspects allow a video stream composed of several layers to be verified by a receiver, regardless of how many of the layers the receiver receives.
[0017] Advantageously, these aspects allow different layers in a video stream to be removed successively, while still allowing verification of layers that are still retained.
[0018] Other objects, features and advantages of the enclosed embodiments will become apparent from the following detailed disclosure, the attached dependent claims and the drawings.
[0019] In general, all terms used in the claims should be interpreted according to their ordinary meaning in the art unless expressly defined otherwise herein. All references to "a / an / the element, apparatus, component, means, module, step, etc." should be openly interpreted as referring to at least one instance of the element, apparatus, component, means, module, step, etc., unless expressly stated otherwise. The steps of any method disclosed herein do not have to be performed in the exact order disclosed, unless expressly stated.
[0020] The inventive concept will now be described, by way of example, with reference to the accompanying drawings. [Brief explanation of the drawings]
[0021] [Figure 1] 1 is a diagram illustrating a system according to an embodiment; [Figure 2] 1 is a schematic diagram of a sequence of encoded image frames in a video stream according to an embodiment; [Figure 3] FIG. 2 is a block diagram of a transmitter according to an embodiment. [Figure 4] 1 is a flowchart of a method according to an embodiment. [Figure 5] FIG. 2 is a block diagram of a receiver according to an embodiment. [Figure 6] 1 is a flowchart of a method according to an embodiment. [Figure 7] 1 is a schematic diagram illustrating functional units of a transmitter / receiver device according to one embodiment. [Figure 8] FIG. 1 illustrates an example of a computer program product including computer readable means, according to one embodiment. DETAILED DESCRIPTION OF THE INVENTION
[0022] The inventive concepts will now be described more fully hereinafter with reference to the accompanying drawings, in which several embodiments of the inventive concepts are shown. However, the inventive concepts may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided as examples so that this disclosure will be thorough and complete, and will fully convey the scope of the inventive concepts to those skilled in the art. Like numbers refer to like elements throughout the description. Any steps or features shown with dashed lines should be considered optional.
[0023] 1 is a schematic diagram illustrating a system 100 to which the embodiments presented herein may be applied. The system 100 comprises a transmitter 110 and a receiver 130 operatively connected to each other by a network 120. The network 120 may be wired, wireless, or partially wired and partially wireless.
[0024] Next, an aspect of the transmitter 110 is disclosed. The transmitter 110 includes a camera device 112. The camera device 112 is configured to capture image frames. In some examples, the camera device 112 is a digital camera device and / or is pan, tilt, and zoom (PTZ) capable, and thus may be considered a (digital) PTZ camera device. Furthermore, the transmitter 110 is configured to encode images such that the images can be decoded using any known video coding standard, such as any of High Efficiency Video Coding (HEVC), also known as H.265 and MPEG-H Part 2, Advanced Video Coding (AVC), also known as H.264 and MPEG-4 Part 10, Generic Video Coding (VVC), also known as H.266, MPEG-I Part 3, and Future Video Coding (FVC), VP9, VP10, and AOMedia Video 1 (AV1), to name a few. In this regard, the encoding may be performed either in direct cooperation with the camera device 112 that captures the image frames or at another entity, such as the first video processing unit 116, which may then be at least temporarily stored in the database 122. The first video processing unit 116 is configured to provide a digital signature to the video stream, as disclosed further below. The camera device 112 and the video processing unit 116 are operably connected to the network 120 via the first interface entity 114.
[0025] Next, an aspect of the receiver 130 is disclosed. The receiver 130 comprises a second video processing unit 134. The second video processing unit 134 is configured to verify a digital signature of the video stream, as further disclosed below. The second video processing unit 134 is operably connected to the network 120 via a second interface entity 132. Furthermore, the receiver 130 is operably connected via the second interface entity 132 to a user interface device 140 with which a user 150 can interact. In some examples, the user interface device 140 is a display device, such as a computer monitor, or screen, or television device. In other examples, the user interface device 140 is a handheld portable device, such as a laptop computer, a tablet computer, or a mobile phone (also referred to as user equipment).
[0026] Assume that a video stream generated by a camera device 112 is to be transmitted from a transmitter 110 to a receiver 130 for display on a user interface device 140. In some scenarios, it may be advantageous to allow the receiver 130 to verify the authenticity of the video stream. One way to achieve this is to implement a signing procedure at the transmitter 110.
[0027] Next, an example of a signing procedure is disclosed.
[0028] The transmitter 110 generates a video stream composed of coded image frames I0, P00, P01, P02, I1, P10, P11, P12, I2, ..., where I0, I1, and I2 are so-called I-frames, and where P00, P01, P02, P10, P11, P12 are so-called P-frames. I0, P00, P01, and P02 represent the first GOP, and I1, P10, P11, P12 represent the second GOP. The signing procedure can then be performed by performing the following for each GOP:
[0029] First, each coded image frame is hashed. In general, hashing a coded image frame or any data involves converting the coded image frame into another value, typically using a hash function. In this regard, a hash function is any function that can be used to map data of any size into a fixed-size value. The value returned by a hash function is called a hash value, hash code, digest, or simply hash. The value is typically used to index into a fixed-size table called a hash table. Non-limiting examples of hash functions are SHA, e.g., SHA265, and MD5. The individual hashes of the coded image frames in a GOP are then stored in a hash list HL for GOP i. i The hash of some data x is represented by h(x). Thus, the hash list HL1 for the first GOP is formed as follows: HL1=h(I0),h(P00),h(P01),h(P02)
[0030] Similarly, the hash list HL2 for the second GOP is formed as follows: HL2=h(I1),h(P10),h(P11),h(P12)
[0031] Optionally, the hash of the next I-frame is also included in the hash list, i.e., hash h(I1) may also be included in HL1. In this regard, the hash of the next I-frame is not required to detect whether an encoded image frame has been modified, but may be used to detect whether an entire GOP has been moved or even deleted.
[0032] Optionally, each hash list HL i is replaced by its hash, i.e., HL i HA(HL i ) can be replaced with the hash list HL i or hash h(HL i) may be added, for example, to a supplemental information unit (SIU) for GOPi. In this disclosure, an SIU should be understood as a unit or message configured to contain supplemental information about or related to an encoded video sequence. An SIU may be, for example, a supplemental enhancement information (SEI) message in the H.26x encoding format or a metadata open bitstream unit (OBU) in the AV1 encoding format.
[0033] Next, the hash list HL i or hash h(HL i ), and possible other metadata for the GOP, are encrypted to form a digital signature. Thus, one digital signature is generated per GOP. The digital signature for GOPi is then added to the SEI frame for GOPi.
[0034] The signing procedure disclosed above applies only to video streams composed of a single layer (and therefore also considered layerless video streams). However, some of the video codecs mentioned above, such as H265, have the potential to generate scalable video streams. This means that the camera device 112 is configured to generate full-scale video divided into two or more layers and to select how many of these layers are transmitted. Therefore, when a video stream is processed according to the procedure in the above example, only the full-scale video stream (i.e., the video stream with all layers generated by the camera device 112) can be verified by the receiver 130.
[0035] Figure 2 schematically illustrates a video stream 200 according to one embodiment. The video stream 200 is encoded in K layers, from layer k=0 to layer K-1. Each of the K layers is composed of coded image frames, three of which are identified by reference numerals 220a, 220b, and 220c. In the illustrative example of Figure 2, the video stream 200 is composed of two GOPs 210a and 210b. The first GOP 210a is composed of layered coded image frames I0, I0-1, I0-2, P00, P00-1, P00-2, P01, P01-1, P01-2, P02, P02-1, and P02-2. The second GOP 210b is made up of coded image frames I1, I1-1, I1-2, P10, P10-1, P10-2, P11, P11-1, P11-2, P12, P12-1, and P12-2.
[0036] In this regard, encoded image frames I0, P00, P01, P02, I1, P10, P11, and P12 represent one layer, encoded image frames I0-1, P00-1, P01-1, P02-1, I1-1, P10-1, P11-1, and P12-1 represent another layer, and encoded image frames I0-2, P00-2, P01-2, P02-2, I1-2, P10-2, P11-2, and P12-2 represent yet another layer. In general, video stream 200 may be encoded in K layers, from layer k=0 to layer k=K-1. Thus, in the illustrative example of FIG. 2, K=3. Encoded image frame 220a represents an encoded image frame in layer k=0, encoded image frame 220b represents an encoded image frame in layer k=1, and encoded image frame 220c represents an encoded image frame in layer k=2.
[0037] In some non-limiting examples, layer k=0 is the base layer, and each of layers k=1, ..., K-1 is a respective enhancement layer. The enhancement layers may depend only on the base layer or on intermediate enhancement layers. That is, if there are K=3 layers, layer k=2 may depend on the base layer (i.e., layer k=0) or the first enhancement layer (i.e., layer k=1).
[0038] In many applications, scalable video is used to deliver the same content to multiple users 150 with different requirements and conditions based on a single encoding instance. One typical example is a broadcast scenario, where the type of user interface device 140 may vary between different users 150.
[0039] In such a scenario, camera device 112 may generate a multi-layer video stream, where, for example, a relay device in network 120 manages which layers to transmit to which user interface device 140. Without loss of generality, in the following it is assumed that transmitter 110 has knowledge of which layers will be received by receiver 130.
[0040] One purpose is to allow a video stream composed of several layers to be verified by receiver 130, regardless of how many of the layers are received by receiver 130. Another purpose is to allow a video stream composed of several layers to be verified by receiver 130, even when different layers in the video stream are successively deleted over time.
[0041] Next, a method for providing a digital signature 340 to a video stream 200 as performed by the transmitter 110 will be disclosed with concurrent reference to Figures 3 and 4. Figure 3 shows a block diagram of the transmitter 110. Figure 4 provides a flowchart of the method performed by the transmitter 110. As in Figure 2, the video stream 200 is encoded in layers k=0,...,K-1. Each of the K layers consists of encoded image frames 220a, 220b, 220c.
[0042] As in step S102, a digital signature for layer k=0 is provided.
[0043] S102: The sender 110 provides a digital signature for layer k=0. The sender 110 first generates signature data 320 for layer k=0. Next, the signature data 320 is generated by the sender 110 hashing the coded image frame 220a for layer k=0. Thus, in the example of FIG. 2, the signature data SD0 for GOPi of layer 0 is i is based on the encoded image frames I0, P00, P01, P02, and I1. In FIG. 3, signature data 320 is generated by hash generator 310. Further aspects of signature data 320 are disclosed below. Then, transmitter 110 generates digital signature 340 for layer k=0 by encrypting signature data 320 for layer k=0 or its hash with the private key of the private-public key pair. That is, either signature data 320 for layer k=0 or the hash of signature data 320 for layer k=0 is encrypted with the private key of the private-public key pair. Thus, to generate digital signature 340, transmitter 110 has access to the private-public key pair. Therefore, digital signature S0 for GOPi of layer 0 is generated by hash generator 310. i is S0 i =(SD0 i ) e or S0 i =(h(SD0 i )) ewhere (y) e indicates that the data y was encrypted with the private key of a private-public key pair.
[0044] Digital signatures for each of the remaining layers k=1, . . . , K-1 are provided as in step S104.
[0045] S104: The sender 110 first generates signature data 320 for layer k by hashing the coded image frames 220b, 220c of layer k and links to any layers k=0 to k−1 on which layer k depends. That is, the coded image frames 220b, 220c of layer k and links to any layers k=0 to k−1 on which layer k depends are hashed. Thus, in the example of FIG. 2, the signature data SDk for GOPi of layer k is i is based on coded image frames I0-k, P00-k, P01-k, P02-k, and I1-k and links to any layers k=0 to k-1 that layer k depends on. One example of how to include links is to first hash the digital signatures for the layers that layer k depends on, and then add this hash to a hash list for layer k.
[0046] The sender 110 then generates a digital signature 340 for layer k by encrypting the signature data 320 for layer k or its hash with the private key of the private-public key pair. That is, either the signature data 320 for layer k or the hash of the signature data 320 for layer k is encrypted with the private key of the private-public key pair. Thus, the digital signature Sk for GOPi of layer k is i Sk i =(SDk i ) e or Sk i =(h(SDk i )) e It will be one of the following.
[0047] Thus, step S104 is performed for each of the remaining layers k=1, ..., K-1. Generally, the digital signature for layers k=1, ..., K-1 includes a link to layer k=0 or any other previous layer on which layer k depends. In this regard, there may be different links from layer k to any previous layer k=0 through layer k-1. In some embodiments, the link to any layer k=0 through layer k-1 is one of: (i) digital signature 340 for any layer k=0 through layer k-1; (ii) signature data 320 for any layer k=0 through layer k-1; (iii) a hash of digital signature 340 for any layer k=0 through layer k-1; or (iv) a hash of signature data 320 for any layer k=0 through layer k-1.
[0048] In FIG. 3, all digital signatures 340 (ie, one digital signature 340 for each of the K layers) are generated by a digital signature generator 330 .
[0049] S106: The sender 110 provides the video stream 200 with digital signatures 340 for all K layers.
[0050] In some embodiments, one digital signature 340 for each of the K layers is generated for each GOP 210a, 210b. Thus, the aforementioned video stream 200 in FIG. 2 can be generally represented as follows: I0 I0-1 I0-2 P00 P00-1 P00-2 P01 P01-1 P01-2 P02 P02-1 P02-2 S0 S0-1 S0-2 I0 I1-1 I1-2 P10 P10-1 P10-2 P11 P11-1 P11-2 P12 P12-1 P12-2 S1 S1-1 S1-2 I2 I2-1 I2-2 P20 P20-1 P20-2 P21 P21-1 P21-2 P22 P22-1 P22-2 S2 S2-1 S2-2 I3 I3-1 I3-2.
[0051] 3, digital signatures 340 for all K layers are provided in at least one SIU 350 of video stream 200. However, digital signatures 340 may also be provided in other ways in video stream 200. For example, in some embodiments, all K digital signatures 340 are provided in a digital signature bundle at layer k=0.
[0052] In some examples, signature data 320 is also provided to the video stream 200. The signature data 320 may be provided to the video stream 200 along with a digital signature 340.
[0053] As disclosed above, signature data 320 for layer k=0 is generated by transmitter 110 hashing encoded image frame 220a for layer k=0, and signature data 320 for layer k is generated by hashing encoded image frames 220b, 220c for layer k and links to any layers k=0 through k−1 on which layer k depends. There may be different examples where signature data 320 is represented accordingly. For example, signature data 320 for layers k=0, ..., K−1 may be either a hash list of all hashed encoded image frames 220a, 220b, 220c for layer k or a hash of all hashed encoded image frames 220a, 220b, 220c for layer k.
[0054] In some embodiments, each digital signature 340 is provided for its own layer in video stream 200. Thus, in some embodiments, signature data 320 for layers k=0, ..., K-1 is provided for layer k in video stream 200 when digital signatures 340 for all K layers have been provided for video stream 200.
[0055] In some examples, the coded image frames 220a, 220b, 220c are provided in video sub-streams, and there may be one such video sub-stream for each of the K layers.
[0056] The encoded image frame 220a, 220b, 220c for each of the K layers is then transmitted along with its digital signature 340. In certain embodiments, the transmitter 110 is configured to perform the (optional) step S108. S108: The sender 110 sends, in the video sub-stream k=0, the coded image frame 220a of layer k=0 and the digital signature 340 for layer k=0.
[0057] Therefore, transmitting only the base layer (i.e., layer k=0) is equivalent to transmitting: I0 P00 P01 P02 S0 I1 P10 P11 P12 S1 I2 P20 P21 P22 S2 I3.
[0058] Furthermore, encoded image frames 220b, 220c of any layer k=1, ..., K-1 may also be transmitted in the video sub-stream digital signature 340. Thus, in some embodiments, the transmitter 110 is configured to perform the (optional) step S110.
[0059] S110: The sender 110 transmits the coded image frames 220b, 220c of any layer k=1, . . . , K−1 in the video sub-stream k, and the digital signature 340 for the layer k.
[0060] Thus, for example, transmitting the first enhancement layer (ie, layer k=1) is equivalent to transmitting: I0-1 P00-1 P01-1 P02-1 S0-1 I1-1 P10-1 P11-1 P12-1 S1-1 I2-1 P20-1 P21-1 P22-1 S2-1 I3-1.
[0061] Next, a method for verifying the digital signature 340 of the video stream 200 as performed by the receiver 130 will be disclosed with parallel reference to Figures 5 and 6. Figure 5 shows a block diagram of the receiver 130. Figure 6 provides a flowchart of the method performed by the receiver 130. It is assumed that the digital signature 340 has been provided to the video stream 200 by the transmitter 110, as disclosed above with reference to Figures 3 and 4. Thus, as disclosed above, the video stream 200 is encoded in layers k=0, ..., K-1. As further disclosed above, each of the K layers is composed of encoded image frames 220a, 220b, 220c.
[0062] In some embodiments, all K digital signatures 340 are provided in the digital signature bundle at layer k=0. The digital signatures 340 for layers k=0, 1, ..., K-1 are then extracted from the digital signature bundle before the digital signatures 340 can be verified. Thus, in some embodiments, receiver 130 is configured to perform (optional) step S202.
[0063] S202: The receiver 130 extracts the digital signatures 340 for layers k=0, 1, . . . , K-1 from the digital signature bundle.
[0064] The receiver 130 verifies the digital signature 340 for layer k=0, as in step S204. In this regard, for layer k=0, the following coded image frames are involved: I0 P00 P01 P02 S0 I1 P10 P11 P12 S1 I2 P20 P21 P22 S2 I3.
[0065] S204: The receiver 130 verifies the digital signature 340 for layer k=0 by verifying that the signature data 520 of the coded image frame 220a for layer k=0 matches the decrypted digital signature 540 for layer k=0. In FIG. 5, the verification is performed in the data signature verifier 550. Thus, first, the digital signature 540 is decrypted (as in the digital signature decryptor 530), and then the decrypted digital signature 540 is compared with the signature data 520 generated by the receiver 130 (as in the hash generator 510). The decrypted digital signature 540 is successfully verified only if the comparison shows that the decrypted digital signature 540 equals the signature data 520. In general, the signature data 520 can be used if the verification of the decrypted digital signature fails, especially if the signature data is a hash list (and not a hash of a hash list). The digital signature can then be verified against the received signature data 520. If this verification is successful, the hashes in the hash list may be compared to identify one or more errors. Further aspects of the signature data 520 are disclosed below. The decrypted digital signature 540 for layer k=0 is decrypted from the digital signature 340 for layer k=0 using the public key of the private-public key pair of the sender 110. Thus, the receiver 130 has access to this public key.
[0066] The receiver 130 verifies the digital signature 340 for layers k=1, ..., K-1, as in step S206. As an example, for layer k=1, the following encoded image frames are involved: I0-1 P00-1 P01-1 P02-1 S0 S0-1 I1-1 P10-1 P11-1 P12-1 S1 S1-1 I2-1 P20-1 P21-1 P22-1 S2 S2-1 I3-1.
[0067] S206: The receiver 130 verifies each digital signature 340 for layers k=1, ..., K-1 by checking that, for layers k=1, ..., K-1, the signature data 520 of the coded image frames 220b, 220c of layer k and any links to layers k=0 to k-1 on which layer k depends match the decrypted digital signature 540 for layer k. In FIG. 5, the verification is performed in a data signature verifier 550. Thus, first, the digital signatures 540 for layers k=1, ..., K-1 are decrypted (as in the digital signature decryptor 530), and then the decrypted digital signatures 540 for layers k=1, ..., K-1 are compared with the signature data 520 generated by the receiver 130 (as in the hash generator 510) for layers k=1, ..., K-1. The decrypted digital signature 540 is successfully verified for layers k=1, . . . , K−1 only if the comparison for layers k=1, . . . , K−1 indicates that the decrypted digital signature 540 is equal to the signed data 520.
[0068] Similar to what was disclosed above, signature data 520 for layer k=0 is generated by receiver 130 hashing encoded image frame 220a for layer k=0, and signature data 520 for layer k is generated by hashing encoded image frames 220b, 220c for layer k and links to any layers k=0 through k−1 on which layer k depends. Similar to what was disclosed above, there may be different examples according to which signature data 520 is represented. For example, signature data 520 for layers k=0, ..., K−1 may be either a hash list of all hashed encoded image frames 220a, 220b, 220c for layer k or a hash of all hashed encoded image frames 220a, 220b, 220c for layer k.
[0069] As disclosed above, there may be different links from layer k to any previous layer k=0 through layer k−1. In some embodiments, according to what was disclosed above with reference to Figures 3 and 4, the link to any layer k=0 through layer k−1 is any of (i) digital signature 340 of any layer k=0 through layer k−1, (ii) signature data 320 generated by the transmitter 110 of coded image frames 220a, 220b for any layer k=0 through layer k−1, (iii) signature data 320 generated by the transmitter 110 of digital signatures of any layer k=0 through layer k−1, or (iv) a hash of signature data 320 for any layer k=0 through layer k−1 generated by the transmitter 110.
[0070] The decrypted digital signature for layer k 540 is decrypted from the digital signature for layer k 340 using the public key.
[0071] Step S206 only needs to be performed for the relevant layers, so if there are K=3 layers but only layers k=0, 1 are relevant, step S206 does not need to be performed for layer k=2.
[0072] As disclosed above, in some examples, digital signatures 340 for all K layers are provided in at least one SIU 350 of video stream 200 .
[0073] 7 illustrates the components of the transmitter / receiver devices 110, 130, in terms of the number of functional units, according to one embodiment. The transmitter / receiver devices 110, 130 implement the functionality of either the transmitter 110 only, the receiver 130 only, or both the transmitter 110 and the receiver 130. The processing circuitry 710 is provided using any combination of one or more suitable central processing units (CPUs), multiprocessors, microcontrollers, digital signal processors (DSPs), etc., capable of executing software instructions stored in computer program products 810a, 810b (as in FIG. 8), e.g., in the form of a storage medium 730. The processing circuitry 710 may further be provided as at least one application-specific integrated circuit (ASIC) or field-programmable gate array (FPGA).
[0074] In particular, the processing circuit 710 is configured to cause the transmitter / receiver devices 110, 130 to perform a set of operations, or steps, as disclosed above. For example, the storage medium 730 may store the set of operations, and the processing circuit 710 may be configured to retrieve the set of operations from the storage medium 730 to cause the transmitter / receiver devices 110, 130 to perform the set of operations. The set of operations may be provided as a set of executable instructions. Thus, the processing circuit 710 is configured to thereby perform the methods disclosed herein.
[0075] The storage medium 730 may also comprise persistent storage, which may be, for example, any one or combination of magnetic memory, optical memory, solid-state memory, or even remotely mounted memory.
[0076] The transmitter / receiver devices 110, 130 may further comprise a communication interface 720 for communicating with other entities, functions, nodes, and devices, as in Figure 1. Thus, the communication interface 720 may comprise one or more transmitters and receivers comprising analog and digital components.
[0077] The processing circuit 710 controls the general operation of the transmitter / receiver devices 110, 130, for example, by sending data and control signals to the communication interface 720 and the storage medium 730, by receiving data and reports from the communication interface 720, and by retrieving data and instructions from the storage medium 730. Other components of the transmitter / receiver devices 110, 130 and associated functionality are omitted so as not to obscure the concepts presented herein.
[0078] The transmitter / receiver devices 110, 130 may be provided as standalone devices or as part of at least one additional device. Thus, a first portion of the instructions implemented by the transmitter / receiver devices 110, 130 may be executed on a first device, and a second portion of the instructions implemented by the transmitter / receiver devices 110, 130 may be executed on a second device, and the embodiments disclosed herein are not limited to any particular number of devices on which the instructions implemented by the transmitter / receiver devices 110, 130 may be executed. Thus, methods according to embodiments disclosed herein are suitable for implementation by transmitter / receiver devices 110, 130 residing in a cloud computing environment. Thus, although a single processing circuit 710 is shown in FIG. 7, the processing circuit 710 may be distributed among multiple devices or nodes. The same applies to the computer programs 820a, 820 of FIG. 8.
[0079] 8 illustrates an example of a computer program product 810a, 810b including a computer-readable means 830. The computer-readable means 830 may have stored thereon a computer program 820a, 820b that can cause the processing circuit 710, as well as entities and devices operatively coupled thereto, such as the communication interface 720 and the storage medium 730, to perform methods according to embodiments described herein. Thus, the computer program 820a, 820b and / or the computer program product 810a, 810b may provide means for performing any step of the transmitter / receiver devices 110, 130 disclosed herein.
[0080] 8, the computer program products 810a, 810b are shown as optical discs, such as CDs (compact discs) or DVDs (digital versatile discs) or Blu-ray discs. The computer program products 810a, 810b may also be embodied as memory, such as random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM), or electrically erasable programmable read-only memory (EEPROM), more particularly as the non-volatile storage medium of the device, in external memory, such as USB (universal serial bus) memory, or flash memory, such as compact flash memory. Thus, although the computer programs 820a, 820b are shown here schematically as tracks on the illustrated optical discs, the computer programs 820a, 820b may be stored in any manner suitable for the computer program products 810a, 810b.
[0081] The inventive concept has been described above primarily with reference to certain embodiments. However, as will be readily appreciated by those skilled in the art, other embodiments besides those disclosed above are equally possible within the scope of the inventive concept as defined by the appended claims.
Claims
1. 1. A method for providing a digital signature (340) to a video stream (200) encoded in layers k=0, . . . , K−1, wherein each of K layers is composed of encoded image frames (220a, 220b, 220c), the method being performed by a transmitter (110), the transmitter (110) having access to a private-public key pair, the method comprising: The digital signature for base layer 0 is generating signature data (320) for the base layer 0 by hashing the encoded image frame (220a) of the base layer 0; and generating the digital signature (340) for the base layer 0 by encrypting the signature data for the base layer 0, or a hash thereof, with the private key of the private-public key pair; (S102) A respective digital signature for each enhancement layer k=1,...,K-1 is calculated as follows for each enhancement layer k=1,...,K-1: generating signature data (320) for the enhancement layer k by hashing the encoded image frames (220b, 220c) of the enhancement layer k and a link to the base layer 0 or to any other previous layers 1 to k-1 on which the enhancement layer k depends, the link being the digital signature (340) of the base layer 0 or any other previous layers 1 to k-1; generating the digital signature (340) for the enhancement layer k by encrypting the signature data (320) for the enhancement layer k, or a hash thereof, with the private key of the private-public key pair; (S104) Each of the digital signatures (340) for each layer k=0, . . . , K−1 is then added to its own layer k=0 in the video stream (200). , . . . , to K-1 (S106) A method comprising:
2. 2. The method of claim 1, wherein the signature data (320) for layer k=0,...,K-1 is either a hash list of all hashed encoded image frames (220a, 220b, 220c) of layer k or a hash of all the hashed encoded image frames (220a, 220b, 220c) of layer k.
3. 2. The method of claim 1, wherein the video stream (200) is comprised of at least one group of pictures (GOP) (210a, 210b), and wherein one digital signature (340) for each of the K layers is generated for each GOP (210a, 210b).
4. The method comprises: transmitting (S108) the coded image frame (220a) of layer k=0 in video substream k=0 and the digital signature (340) for layer k=0; The method of claim 1 further comprising:
5. 1. A method for verifying a digital signature (340) of a video stream (200) encoded in layers k=0, . . . , K−1, wherein each of K layers is composed of encoded image frames (220a, 220b, 220c), the method being performed by a receiver (130), the receiver (130) having access to a public key of a private-public key pair of a transmitter (110), the method comprising: verifying (S204) the digital signature (340) for base layer 0 by confirming that signature data (520) of the encoded image frame (220a) for base layer 0 matches the decrypted digital signature (540) for base layer 0, wherein the decrypted digital signature (540) for base layer 0 is decrypted from the digital signature (340) for base layer 0 using the public key; verifying (S206) each digital signature (340) for enhancement layers k=1,...,K-1 by checking that signature data (520) of the encoded image frames (220b, 220c) of the enhancement layer k and the link to the base layer 0 or to any other previous layers 1 to k-1 on which the enhancement layer k depends matches the decrypted digital signature (540) for the enhancement layer k, wherein the decrypted digital signature (540) for the enhancement layer k was decrypted from the digital signature (340) for the enhancement layer k using the public key, and the link is the digital signature (340) of the base layer 0 or any other previous layers 1 to k-1; Including, Each layer k=0 , K−1, each of the digital signatures (340) for its own layer k=0 in the video stream (200) , . . . , The method provided in K-1.
6. 1. A transmitter (110) for providing a digital signature (340) to a video stream (200) encoded in layers k=0,...,K-1, each of K layers consisting of encoded image frames (220a, 220b, 220c), the transmitter (110) having access to a private-public key pair, the transmitter (110) comprising a processing circuit (710), the processing circuitry providing the transmitter with: The digital signature for base layer 0 is generating signature data (320) for the base layer 0 by hashing the encoded image frame (220a) of the base layer 0; and generating the digital signature (340) for the base layer 0 by encrypting the signature data (320) for the base layer 0, or a hash thereof, with the private key of the private-public key pair; and A respective digital signature (340) for each enhancement layer k=1,...,K-1 is calculated as follows for each enhancement layer k=1,...,K-1: generating signature data (320) for the enhancement layer k by hashing the encoded image frames (220b, 220c) of the enhancement layer k and a link to the base layer 0 or to any other previous layers 1 to k-1 on which the enhancement layer k depends, the link being the digital signature (340) of the base layer 0 or any other previous layers 1 to k-1; generating the digital signature (340) for the enhancement layer k by encrypting the signature data (320) for the enhancement layer k, or a hash thereof, with the private key of the private-public key pair; and Each layer k=0 , K−1 to its own layer k=0 in the video stream (200). , . . . , and provide it to K-1 a transmitter (110) configured to cause the
7. 1. A receiver (130) for verifying a digital signature (340) of a video stream (200) encoded in layers k=0,...,K-1, each of K layers consisting of encoded image frames (220a, 220b, 220c), the receiver (130) having access to a public key of a private-public key pair of a transmitter (110), the receiver (130) comprising a processing circuit (710), the processing circuitry providing the receiver (130): verifying the digital signature (340) for base layer 0 by confirming that signature data (520) of the encoded image frame (220a) for base layer 0 matches the decrypted digital signature (540) for base layer 0, wherein the decrypted digital signature (540) for base layer 0 is decrypted from the digital signature (340) for base layer 0 using the public key; verifying, for enhancement layers k=1,...,K-1, each digital signature (340) for the enhancement layer k=1,...,K-1 by verifying that signature data (520) of the encoded image frame (220b, 220c) of the enhancement layer k and a link to the base layer 0 or to any other previous layer 1 to k-1 on which the enhancement layer k depends matches the decrypted digital signature (540) for the enhancement layer k, wherein the decrypted digital signature (540) for the enhancement layer k was decrypted from the digital signature (340) for the enhancement layer k using the public key, and the link is the digital signature (340) of the base layer 0 or any other previous layer 1 to k-1; The method is configured to: Each layer k=0 , K−1, each of the digital signatures (340) for its own layer k=0 in the video stream (200) ,... ,K-1 is provided to the receiver.
8. 1. A computer program (820a) for providing a digital signature (340) to a video stream (200) encoded in layers k=0,...,K-1, each of K layers consisting of encoded image frames (220a, 220b, 220c), the computer program, when executed on a processing circuit (710) of a transmitter (110) having access to a private-public key pair, providing to the transmitter (110): The digital signature for base layer 0 is generating signature data (320) for the base layer 0 by hashing the encoded image frame (220a) of the base layer 0; and generating the digital signature (340) for the base layer 0 by encrypting the signature data for the base layer 0, or a hash thereof, with the private key of the private-public key pair; (S102) A respective digital signature for each enhancement layer k=1,...,K-1 is calculated as follows for each enhancement layer k=1,...,K-1: generating signature data (320) for the enhancement layer k by hashing the encoded image frames (220b, 220c) of the enhancement layer k and a link to the base layer 0 or to any other previous layers 1 to k-1 on which the enhancement layer k depends, the link being the digital signature (340) of the base layer 0 or any other previous layers 1 to k-1; generating the digital signature (340) for the enhancement layer k by encrypting the signature data (320) for the enhancement layer k, or a hash thereof, with the private key of the private-public key pair; (S104) Each of the digital signatures (340) for each layer k=0, . . . , K−1 is then added to its own layer k=0 in the video stream (200). , . . . , to K-1 (S106) A computer program comprising computer code for causing the
9. 1. A computer program (820b) for verifying a digital signature (340) of a video stream (200) encoded in layers k=0,...,K-1, each of K layers consisting of encoded image frames (220a, 220b, 220c), the computer program, when executed on processing circuitry of a receiver (130) having access to a public key of a private-public key pair of a transmitter (110), causes the receiver (130) to: verifying (S204) the digital signature (340) for base layer 0 by confirming that signature data (520) of the encoded image frame (220a) for base layer 0 matches the decrypted digital signature (540) for base layer 0, wherein the decrypted digital signature (540) for base layer 0 is decrypted from the digital signature (340) for base layer 0 using the public key; verifying (S206) each digital signature (340) for enhancement layers k=1,...,K-1 by checking that signature data (520) of the encoded image frames (220b, 220c) of the enhancement layer k and the link to the base layer 0 or to any other previous layers 1 to k-1 on which the enhancement layer k depends matches the decrypted digital signature (540) for the enhancement layer k, wherein the decrypted digital signature (540) for the enhancement layer k was decrypted from the digital signature (340) for the enhancement layer k using the public key, and the link is the digital signature (340) of the base layer 0 or any other previous layers 1 to k-1; computer code to cause the Each layer k=0 , K−1, each of the digital signatures (340) for its own layer k=0 in the video stream (200) ,... ,A computer program provided to K-1.
Citation Information
Patent Citations
Scalable authentication method based on H264 / SVC video streams
CN107172431A
Watermarking in video transmissions
EP1276328A2
Authentication method and device for data stream with adaptive loss control
JP2007503134A
Monitoring video recording apparatus
JP2010219889A
System and method for providing cryptographic video verification
US20140010366A1