Verifying signature of video stream encoded in layer

JP2024020162A5Active Publication Date: 2025-07-18AXIS
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2023121309
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-08-01
Filing Date
2023-07-26
Publication Date
2025-07-18
Estimated Expiration
2043-07-26

AI Technical Summary

Technical Problem

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 loss of information and increased bitrate when frequent I-frames are used for verification.

Method used

A method and system for providing digital signatures to each layer of a video stream using a private-public key pair, allowing verification of the stream's authenticity by hashing and encrypting signature data for each layer, ensuring integrity even when layers are deleted or modified.

Benefits of technology

Enables verification of video streams encoded in layers, allowing for the detection of tampering and maintaining frame rate without significant bitrate increase, ensuring the integrity of the video content.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

To provide a method, receiver, computer program, and computer program product for providing a digital signature to a video stream encoded in a layer.SOLUTION: A method provides a digital signature for a layer k=0 by generating signature data for the layer k=0 and generating a digital signature for the layer k=0, in which each layer consists of encoded image frames. The method also provides digital signatures for respective layers k=1,...,K-1 by generating signature data for the respective layers k=1,..., K-1 and generating a digital signature for the layer k by encrypting the signature data for the layer k or its hash with the private key of a private-public key pair. This provides the digital signatures for all the layers to a video stream.SELECTED DRAWING: Figure 4
Need to check novelty before this filing date? Find Prior Art

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. A video stream of adequate quality, even when encoded using a compression-efficient encoding scheme, consumes storage space, both locally at the surveillance camera as well as in centralized storage (such as cloud storage). Storage space is always associated with a cost. Encoded video streams often need to be stored until 1) the encoded video stream has been reviewed and deemed unimportant, or 2) a period of time has passed during which the encoded video stream may be relevant. In some facilities, the period of time in question may be set by law. One general rule that is often applied is to store the encoded video stream for as long as possible, and when the available storage space runs out, some kind of pruning scheme is applied. Pruning here refers to the process of removing video frames or video sequences from the encoded video stream with the purpose of reducing the file size, and in some technical descriptions it is called thinning. Inevitably, removing video frames or video sequences from the encoded video stream will result in the encoded video stream being considered as having been 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 detrimental to the adversary. Thus, pruning is one example where an encoded video stream is tampered with.

[0003] Therefore, the ability to precisely 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 videos can become commonplace, creating major dilemmas for security personnel, network administrators, and corporate executives. Protocols should be developed to verify that the video has not been tampered with since it was generated at its source.

[0005] Thus, US 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). A second document contains hashes only from I-frames of a set of GOPs. The documents may each be signed by 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 may be used to verify the I-frames.

[0006] However, as soon as the P or B frames are pruned, only the second document has relevance. This means that only the I frames can be trusted and should be rendered. If the GOP length is, for example, 2 seconds and all P or B frames are pruned, this means that one I frame is sent every 2 seconds and thus the frame rate drops to 0.5 frames / 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 also sent more frequently. However, this increases the bit rate significantly. Therefore, there is a need for improvements in cryptographic video verification. Summary of the Invention

[0007] An objective of the embodiments herein is to enable verification of video streams encoded 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 a digital signature for layer k=0 by encrypting the signature data for layer k=0, or a hash of it, with a private key of a 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 to k-1 on which layer k depends, and generating a digital signature for layer k by encrypting the signature data for layer k, or a hash of it, with a private key of a 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 to a video stream encoded at layers k=0,...,K-1. Each of the K layers is composed of encoded image frames. The transmitter has access to a private-public key pair. The transmitter comprises a processing circuit. The processing circuit 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) of layer k=0, and generating a digital signature for layer k=0 by encrypting the signature data for layer k=0 or a hash of it with a private key of a private-public key pair. The processing circuit is configured to cause the transmitter to provide a respective digital signature for each layer k=1,...,K-1 by generating, for each layer k=1,...,K-1, signature data for layer k by hashing an encoded image frame of layer k and a link to any layer k=0 to 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 layers is presented, the computer program comprising computer program code which, when executed on a processing circuit 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 at layers k=0,...,K-1. Each of the K layers is composed of encoded image frames. The method is performed by a receiver. The receiver has access to a public key of a private-public key pair of the sender. The method includes verifying a digital signature for layer k=0 by verifying that signature data of the encoded image frames of 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 verifying that signature data of the encoded image frames of 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 at layers k=0,...,K-1. Each of the K layers is composed of encoded image frames. The receiver has access to a public key of a private-public key pair of the sender. 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 being decrypted from the digital signature for layer k using the public key.

[0013] According to a sixth aspect, a computer program for verifying a digital signature of a video stream encoded in layers is presented, the computer program comprising computer program code which, when executed on a processing circuit of a receiver, causes the receiver to perform the method according to the fourth aspect.

[0014] According to a seventh aspect, a computer program product is presented, comprising 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 for verification of a video stream encoded in 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 as well as 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 example 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 only, with reference to the accompanying drawings in which: [Brief description of the drawings]

[0021] [Figure 1] FIG. 1 illustrates a schematic diagram of a system according to an embodiment. [Diagram 2] 2 is a schematic diagram of a sequence of encoded image frames in a video stream according to an embodiment; [Diagram 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. [Diagram 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] FIG. 2 is a schematic diagram illustrating functional units of a transmitter / receiver device according to one embodiment. [Figure 8] FIG. 2 illustrates an example of a computer program product including computer readable means, according to one embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0022] The inventive concept will now be described more fully below with reference to the accompanying drawings, in which several embodiments of the inventive concept are shown. However, the inventive concept may be embodied in many different forms and should not be construed as being limited to the embodiments set forth herein, but 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 concept to those skilled in the art. Like numbers refer to like elements throughout the description. Any step or feature 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 comprises 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 as 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 examples. In this regard, the encoding may be performed either in direct cooperation with the camera device 112 that captures the image frames or in another entity, such as the first video processing unit 116, which 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 operatively 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 to a user interface device 140 through the second interface entity 132 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 a screen, or a 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 encoded 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 encoded image frame is hashed. In general, hashing an encoded image frame or any data involves converting the encoded 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 encoded image frames in the GOP are then stored in a hash list HL for GOPi. 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 upcoming 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 upcoming 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, for each hash list HL i is replaced by the hash of itself, i.e. HL i HL i ) can be replaced by 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 include 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 possibly 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 (hence also considered as layerless video streams). However, some of the above mentioned video codecs, such as H265, have the possibility to generate scalable video streams. This means that the camera device 112 is configured to generate a full-scale video split into two or more layers and to select how many of these layers are transmitted. Therefore, if the 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] FIG. 2 illustrates a schematic of 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 encoded image frames, three of which are identified by reference numbers 220a, 220b, 220c. In the illustrative example of FIG. 2, the video stream 200 is composed of two GOPs 210a, 210b. The first GOP 210a is composed of layered encoded image frames I0, I0-1, I0-2, P00, P00-1, P00-2, P01, P01-1, P01-2, P02, P02-1, P02-2. The second GOP 210b is composed 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, the encoded image frames I0, P00, P01, P02, I1, P10, P11, P12 represent one layer, the encoded image frames I0-1, P00-1, P01-1, P02-1, I1-1, P10-1, P11-1, P12-1 represent another layer, and the encoded image frames I0-2, P00-2, P01-2, P02-2, I1-2, P10-2, P11-2, P12-2 represent yet another layer. In general, the 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 at layer k=0, encoded image frame 220b represents an encoded image frame at layer k=1, and encoded image frame 220c represents an encoded image frame at layer k=2.

[0037] In some non-limiting examples, layer k=0 is a 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 among 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 about which layers will be received by receiver 130.

[0040] One objective 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 objective 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 removed over time.

[0041] Next, a method for providing a digital signature 340 to a video stream 200 as implemented by the transmitter 110 is disclosed with parallel reference to Figures 3 and 4. In Figure 3, a block diagram of the transmitter 110 is shown. In Figure 4, a flow chart of the method implemented by the transmitter 110 is provided. As in Figure 2, the video stream 200 is encoded in layers k=0,...,K-1. Each of the K layers is composed 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 encoded image frame 220a for layer k=0. Thus, in the example of FIG. 2, the signature data SD0 for GOPi of layer 0 is generated as follows: i is based on the encoded image frames I0, P00, P01, P02, and I1. In FIG. 3, the signature data 320 is generated by the hash generator 310. Further aspects of the signature data 320 are disclosed below. The sender 110 then generates a digital signature 340 for layer k=0 by encrypting the signature data 320 for layer k=0 or its hash with the private key of the private-public key pair. That is, either the signature data 320 for layer k=0 or the hash of the signature data 320 for layer k=0 is encrypted with the private key of the private-public key pair. Thus, to generate the digital signature 340, the sender 110 has access to the private-public key pair. Thus, the digital signature S0 for GOPi of layer 0 is generated by the hash generator 310. i is S0 i =(SD0 i ) e or S0 i =(h(SD0 i )) ewhere (y) e indicates that the data y has been 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 generated. 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 S for GOPi of layer k is i Sk i =(SDk i ) e or Sk i =(h(SDk i )) e It can be one of the following.

[0047] Thus, step S104 is performed for each of the remaining layers k=1,...,K-1. In general, 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 layers k=0 to k-1. In some embodiments, the link to any layer k=0 to k-1 is either (i) digital signature 340 for any layer k=0 to k-1, (ii) signature data 320 for any layer k=0 to k-1, (iii) a hash of digital signature 340 for any layer k=0 to k-1, or (iv) a hash of signature data 320 for any layer k=0 to 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 may 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 manners 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, the signature data 320 for layer k=0 is generated by the sender 110 hashing the encoded image frame 220a for layer k=0, and the signature data 320 for layer k is generated by hashing the encoded image frames 220b, 220c for layer k and links to any layers k=0 to k-1 on which layer k depends. There may be different examples according to which the signature data 320 is represented. For example, the 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 the video stream 200. Thus, in some embodiments, signature data 320 for layers k=0,...,K-1 is provided for layer k in the video stream 200 when digital signatures 340 for all K layers have been provided in the video stream 200.

[0055] In some examples, the encoded image frames 220a, 220b, 220c are provided in video sub-streams. 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 transmits, in the video sub-stream k=0, the encoded 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, the 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, in a video sub-stream k, the encoded image frames 220b, 220c of any layer k=1, . . . , K−1 and a digital signature 340 for 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 implemented by the receiver 130 is disclosed with parallel reference to Figures 5 and 6. In Figure 5, a block diagram of the receiver 130 is shown. In Figure 6, a flow chart of the method implemented by the receiver 130 is provided. 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, the receiver 130 is configured to perform the (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 encoded image frames are concerned: 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 checking that the signature data 520 of the encoded 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 is equal to the signature data 520. In general, the signature data 520 may 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 may 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 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 the data signature verifier 550. Thus, first, the digital signature 540 for layers k=1,...,K-1 is decrypted (as in the digital signature decryptor 530), and then the decrypted digital signature 540 for layers k=1,...,K-1 is 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, .

[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 to 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 to 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 to layer k-1 is either (i) a digital signature 340 of any layer k=0 to layer k-1, (ii) signature data 320 generated by the transmitter 110 of the encoded image frames 220a, 220b for any layer k=0 to layer k-1, (iii) signature data 320 generated by the transmitter 110 of the digital signature of any layer k=0 to layer k-1, or (iv) a hash of the signature data 320 generated by the transmitter 110 for any layer k=0 to layer k-1.

[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 needs to be performed only for the layers that are of interest, so if there are K=3 layers, but only layers k=0,1 are of interest, 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 shows the components of the transmitter / receiver device 110, 130 according to one embodiment, in terms of the number of functional units. The transmitter / receiver device 110, 130 implements the functionality of either the transmitter 110 only, or the receiver 130 only, or both the transmitter 110 and the receiver 130. The processing circuit 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 a computer program product 810a, 810b (as in FIG. 8), for example in the form of a storage medium 730. The processing circuit 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 a 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 the following: magnetic memory, optical memory, solid-state memory, and 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 circuitry 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 further device. Thus, a first part of the instructions implemented by the transmitter / receiver devices 110, 130 may be executed in a first device, and a second part of the instructions implemented by the transmitter / receiver devices 110, 130 may be executed in 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, the methods according to the embodiments disclosed herein are suitable to be implemented by the transmitter / receiver devices 110, 130 present 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 on which may be stored a computer program 820a, 820b that may 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 device 110, 130 disclosed herein.

[0080] In the example of Fig. 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 a memory, such as a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM) or an electrically erasable programmable read-only memory (EEPROM), more particularly as a non-volatile storage medium of the device, such as an external memory, such as a USB (universal serial bus) memory, or a flash memory, such as a compact flash memory. Thus, although the computer programs 820a, 820b are shown here diagrammatically as tracks on the illustrated optical disc, 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 primarily described above 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. A method for providing a digital signature (340) to a video stream (200) encoded in layers k = 0,..., K - 1, each of the K layers being composed of encoded image frames (220a, 220b, 220c), the method being executed by a transmitter (110), the transmitter (110) having access to a secret - public key pair, the method comprising: providing a digital signature for base layer 0 by generating signature data (320) for base layer 0 by hashing the encoded image frames (220a) of the base layer 0, and generating the digital signature (340) for base layer 0 by encrypting the signature data or its hash for base layer 0 with the secret key of the secret - public key pair (S102); and providing each respective digital signature for each enhancement layer k = 1,..., K - 1 by, for each enhancement layer k = 1,..., K - 1, generating signature data (320) for enhancement layer k by hashing the encoded image frames (220b, 220c) of enhancement layer k and a link to base layer 0 or to any other previous layer 1 to k - 1 on which enhancement layer k depends, the link being the digital signature (340) of base layer 0 or of any other previous layer 1 to k - 1, and generating the digital signature (340) for enhancement layer k by encrypting the signature data (320) or its hash for enhancement layer k with the secret key of the secret - public key pair (S104); and providing each respective digital signature (340) for each layer k = 0,..., K - 1 within its own layer k = 0 ,..., K - 1 in the video stream (200) (S106). A method comprising the above steps.

2. The method according to claim 1, wherein the signature data (320) for layers 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 said hashed encoded image frames (220a, 220b, 220c) of layer k.

3. The method according to claim 1, wherein the video stream (200) is composed of at least one picture group (GOP) (210a, 210b), and one digital signature (340) for each of the K layers is generated for each GOP (210a, 210b).

4. The method comprises further transmitting (S108) the encoded image frame (220a) of layer k = 0 and the digital signature (340) for layer k = 0 in video sub-stream k = 0. The method according to claim 1.

5. A method for verifying the digital signature (340) of a video stream (200) encoded in layers k = 0,..., K-1, each of the K layers being composed of encoded image frames (220a, 220b, 220c), the method being performed by a receiver (130), the receiver (130) having access to the public key of the secret-public key pair of a transmitter (110), the method comprising: verifying (S204) the digital signature (340) for base layer 0 by confirming that the signature data (520) of the encoded image frame (220a) of base layer 0 matches the decoded digital signature (540) for base layer 0, the decoded digital signature (540) for base layer 0 being decoded from the digital signature (340) for base layer 0 using the public key, verifying (S204) the digital signature (340). For enhancement layers k = 1,..., K - 1, by verifying that the signature data (520) of the encoded image frames (220b, 220c) of the enhancement layer k and the link to the base layer 0 or any other previous layer 1 to k - 1 on which the enhancement layer k depends matches the decoded digital signature (540) for the enhancement layer k, verifying each digital signature (340) for the enhancement layers k = 1,..., K - 1 (S206), wherein the decoded digital signature (540) for the enhancement layer k is decoded 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, verifying each digital signature (S206) and comprising For each layer k = 0 ,..., K - 1, each of the digital signatures (340) is provided in its own layer k = 0 ,..., K - 1 within the video stream (200). **Claim 6** A transmitter (110) for providing digital signatures (340) to a video stream (200) encoded in layers k = 0,..., K - 1, wherein each of the K layers is composed of encoded image frames (220a, 220b, 220c), the transmitter (110) has access to a secret - public key pair, the transmitter (110) comprises a processing circuit (710), and the processing circuit causes the transmitter to provide a digital signature for the base layer 0, generate signature data (320) for the base layer 0 by hashing the encoded image frames (220a) of the base layer 0, and generate 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 secret key of the secret - public key pair thereby providing, for each enhancement layer k = 1,..., K - 1, each of the digital signatures (340) 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 any other previous layer 1 to k - 1 on which the enhancement layer k depends, wherein the link is the digital signature (340) of the base layer 0 or any other previous layer 1 to k - 1, generating the signature data (320), and 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 secret - public key pair Thereby providing For each layer k = 0 Providing each respective digital signature (340) for each layer k = 0 ... K - 1 within its own layer k = 0 ... K - 1 in the video stream (200), and a transmitter (110) configured to cause this to be done. **Claim 7** A receiver (130) for verifying the digital signature (340) of a video stream (200) encoded in layers k = 0... K - 1, wherein each of the K layers is composed of encoded image frames (220a, 220b, 220c), the receiver (130) has access to the public key of the secret - public key pair of the transmitter (110), the receiver (130) comprises a processing circuit (710), and the processing circuit causes the receiver (130) to Verify the digital signature (340) for the base layer 0 by confirming that the signature data (520) of the encoded image frame (220a) of the base layer 0 matches the decoded digital signature (540) for the base layer 0, wherein the decoded digital signature (540) for the base layer 0 is decoded from the digital signature (340) for the base layer 0 using the public key, verifying the digital signature (340). For enhancement layers k = 1,..., K - 1, by verifying that the signature data (520) of the encoded image frames (220b, 220c) of the enhancement layer k and the link to the base layer 0 or any other previous layer 1 to k - 1 on which the enhancement layer k depends match the decoded digital signature (540) for the enhancement layer k, respectively verifying each digital signature (340) for the enhancement layers k = 1,..., K - 1, wherein the decoded digital signature (540) for the enhancement layer k is decoded 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, and verifying each digital signature is configured to cause to be performed, For each layer k = 0 ,..., K - 1, each of the digital signatures (340) is provided to its own layer k = 0 ,..., K - 1 within the video stream (200), a receiver. [

8. ] A computer program (820a) for providing digital signatures (340) to a video stream (200) encoded in layers k = 0,..., K - 1, wherein each of the K layers is composed of encoded image frames (220a, 220b, 220c), and the computer program, when executed on a processing circuit (710) of a transmitter (110) having access to a secret - public key pair, causes the transmitter (110) to provide a digital signature for the base layer 0, generate signature data (320) for the base layer 0 by hashing the encoded image frames (220a) of the base layer 0, and generate the digital signature (340) for the base layer 0 by encrypting the signature data or its hash for the base layer 0 with the secret key of the secret - public key pair to provide (S102), and for each enhancement layer k = 1,..., K - 1, each digital signature for each enhancement layer k = 1,..., K - 1 Generating signature data (320) for the enhancement layer k by hashing the encoded image frame (220b, 220c) of the enhancement layer k and the link to the base layer 0 or any other previous layer 1 to k - 1 on which the enhancement layer k depends, wherein the link is the digital signature (340) of the base layer 0 or any other previous layer 1 to k - 1, generating signature data (320), and Generating the digital signature (340) for the enhancement layer k by encrypting the signature data (320) for the enhancement layer k or its hash with the private key of the secret - public key pair Thereby providing (S104); Providing each respective digital signature (340) for each layer k = 0,..., K - 1 to its own layer k = 0 in the video stream (200) ... K - 1 (S106); A computer program comprising computer code for causing this to be done.

9. A computer program (820b) for verifying the digital signature (340) of a video stream (200) encoded in layers k = 0,..., K - 1, wherein each of the K layers is composed of encoded image frames (220a, 220b, 220c), and the computer program, when executed on the processing circuit of a receiver (130) having access to the public key of the secret - public key pair of a transmitter (110), causes the receiver (130) to Verify the digital signature (340) for the base layer 0 by confirming that the signature data (520) of the encoded image frame (220a) of the base layer 0 matches the decoded digital signature (540) for the base layer 0, wherein the decoded digital signature (540) for the base layer 0 is decoded from the digital signature (340) for the base layer 0 using the public key, verifying the digital signature (340) (S204); For enhancement layers k = 1,..., K - 1, by verifying that the signature data (520) of the encoded image frame (220b, 220c) of the enhancement layer k and the link to the base layer 0 or any other previous layer 1 to k - 1 that the enhancement layer k depends on match the decoded digital signature (540) for the enhancement layer k, verifying each digital signature (340) for the enhancement layers k = 1,..., K - 1 (S206), wherein the decoded digital signature (540) for the enhancement layer k is decoded 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, and verifying each digital signature (S206) and including computer code to cause to perform For each layer k = 0 ,..., K - 1, each of the digital signatures (340) is provided for its own layer k = 0 ,..., K - 1 within the video stream (200), a computer program.