KR102348633B1 - Video encryption and decryption method and apparatus - Google Patents
Video encryption and decryption method and apparatus Download PDFInfo
- Publication number
- KR102348633B1 KR102348633B1 KR1020200060482A KR20200060482A KR102348633B1 KR 102348633 B1 KR102348633 B1 KR 102348633B1 KR 1020200060482 A KR1020200060482 A KR 1020200060482A KR 20200060482 A KR20200060482 A KR 20200060482A KR 102348633 B1 KR102348633 B1 KR 102348633B1
- Authority
- KR
- South Korea
- Prior art keywords
- nal unit
- encrypted
- bitstream
- unit header
- change table
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 65
- 230000008859 change Effects 0.000 claims description 97
- 238000004891 communication Methods 0.000 claims description 9
- FMYKJLXRRQTBOR-UBFHEZILSA-N (2s)-2-acetamido-4-methyl-n-[4-methyl-1-oxo-1-[[(2s)-1-oxohexan-2-yl]amino]pentan-2-yl]pentanamide Chemical group CCCC[C@@H](C=O)NC(=O)C(CC(C)C)NC(=O)[C@H](CC(C)C)NC(C)=O FMYKJLXRRQTBOR-UBFHEZILSA-N 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 3
- 230000033458 reproduction Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2347—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving video stream encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/4402—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
- H04N21/44029—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display for generating different versions
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
실시예는, 비디오의 암호화 및 복호화 방법 및 장치에 관한 것으로서, 비트스트림의 스타트 코드를 이용하여 디코딩에 사용되는 바이트 값을 변경함으로써 비디오의 암호화 및 복호화를 수행한다. The embodiment relates to a method and apparatus for encrypting and decrypting a video, and performs encryption and decryption of a video by changing a byte value used for decoding using a start code of a bitstream.
Description
실시예는 비디오 암호화 및 복호화 방법 및 장치에 관한 것으로서 더욱 자세히는, 비디오를 암호화 하여 인증되지 않은 사용자가 비디오를 재생하여 보지 못하게 하고, 암호화된 비디오를 복호화 하여 숨겨진 비디오 내용을 재생하는 방법 및 장치에 관한 것이다.The embodiment relates to a method and apparatus for encrypting and decrypting a video, and more particularly, to a method and apparatus for encrypting a video to prevent unauthorized users from playing and viewing the video, and decrypting an encrypted video to play hidden video content it's about
비디오 데이터를 암호화하는 방법으로는 비디오 데이터 전체를 표준 암호 알고리즘으로 암호화하거나, 비디오 데이터 중에서 중요한 일부만을 선택적으로 암호화하는 방법 등이 있다. As a method of encrypting video data, there is a method of encrypting the entire video data using a standard encryption algorithm or selectively encrypting only an important part of the video data.
후자의 방법을 선택적 암호화(Selective Encryption) 또는 부분 암호화(Partial Enctyption)라고 한다. 선택적 암호화는 비디오 데이터의 일부만을 암호화하기 때문에 전체를 암호화 하는 경우에 비해 처리 성능이 우수하다. 또한, 암호화된 데이터가 비디오 표준 규격을 만족하도록 할 수 있어서 선택적 암호화 방법을 주로 사용한다. The latter method is called selective encryption or partial encryption. Since selective encryption encrypts only a part of the video data, processing performance is superior compared to the case of encrypting the entire video data. In addition, the selective encryption method is mainly used because it can make the encrypted data satisfy the video standard specification.
선택적 암호화는 비디오 데이터 중에서 중요한 요소인 잔차 정보(residual data)와 모션 벡터(motion vector)등을 암호화하는 것이다. 이러한 암호화는 비디오 인코딩 과정 중에 포함할 수도 있고, 인코딩 후 생성된 비디오 데이터를 대상으로 할 수도 있다. Selective encryption encrypts residual data and motion vectors, which are important elements among video data. Such encryption may be included during the video encoding process or may target video data generated after encoding.
종래의 Native 암호화 방식은 비디오 비트스트림(bitstream) 전체를 암호화 하기한다. 따라서 보안의 강도가 높지만 전체의 비트스트림에 대해 AES와 같은 Encryption 알고리즘을 사용하여 암호화 하기 때문에 계산량이 많고 암호화 하는 중에 데이터의 증가가 커질 수 있는 문제점이 있다. The conventional native encryption method encrypts the entire video bitstream. Therefore, although the security strength is high, since the entire bitstream is encrypted using an encryption algorithm such as AES, there is a problem in that the amount of computation is large and the data increase during encryption.
또한, Selective 암호화 방식은 비디오 비트스트림 일부를 AES와 같은 Encryption 알고리즘을 사용하여 암호화 하기 때문에 계산량을 종래의 Native 암호화 방식에 비해 줄일 수 있지만 디코딩이 가능해 대략적인 내용을 파악할 수 있어 보안의 강도가 낮다는 문제점이 있다. In addition, since the selective encryption method encrypts a part of the video bitstream by using an encryption algorithm such as AES, the amount of calculation can be reduced compared to the conventional native encryption method, but it can be decoded and the approximate contents can be grasped, so the security strength is low. There is a problem.
실시예에 따른 비디오 암호화 및 복호화 방법 및 장치는, 비트스트림의 일부를 암호화 하여 비디오를 암호화하는데 필요한 계산의 복잡도를 감소시키고, 암호화된 비디오가 디코딩 되는 것을 방지하며, 암호화의 보안 강도를 높일 수 있는 방법 및 장치를 제공하기 위한 것이다. Video encryption and decryption method and apparatus according to the embodiment, by encrypting a part of a bitstream to reduce the complexity of calculations required to encrypt the video, prevent the encrypted video from being decoded, and can increase the security strength of encryption To provide a method and apparatus.
실시예는 영상 암호화 방법으로서, 인코더(Encoder)를 이용하여 상기 입력 영상을 압축된 비트스트림(bitstream)으로 인코딩하는 단계, 그리고 스타트 코드(Start code)를 이용하여 상기 압축된 비트스트림의 디코딩에 사용되는 복수의 바이트 정보를 변경하여 상기 비트스트림을 암호화하는 단계를 포함하고, 상기 압축된 비트스트림은 상기 복수의 스타트 코드를 포함한다. An embodiment is an image encryption method, encoding the input image into a compressed bitstream using an encoder, and decoding the compressed bitstream using a start code and encrypting the bitstream by changing a plurality of byte information to be used, wherein the compressed bitstream includes the plurality of start codes.
또한, 실시예에 따른 비트스트림은 복수의 NAL Unit(Network Abstraction Layer Unit)을 더 포함하고, 상기 NAL Unit은 NAL Unit Header와 RBSP(Raw Byte Sequence Payload)로 구성되며, 상기 비트스트림을 암호화 하는 단계는, 상기 NAL Unit Header의 첫 번째 바이트 값에 대한 변경 테이블을 생성하는 단계, 상기 비트스트림을 이용하여 상기 스타트 코드를 검색하는 단계, 상기 스타트 코드를 이용하여 상기 NAL Unit Header를 검색하는 단계, 그리고 상기 변경 테이블에 따라 모든 NAL Unit Header의 첫 번째 바이트 값을 변경하는 단계를 포함한다. In addition, the bitstream according to the embodiment further includes a plurality of Network Abstraction Layer Units (NAL Units), wherein the NAL Units include a NAL Unit Header and a Raw Byte Sequence Payload (RBSP), and encrypting the bitstream generating a change table for the first byte value of the NAL Unit Header, retrieving the start code using the bitstream, retrieving the NAL Unit Header using the start code, and and changing first byte values of all NAL unit headers according to the change table.
또한, 실시예에 따른 인코딩하는 단계는, HEVC 코덱을 이용하여 상기 입력 영상을 상기 압축된 비트스트림으로 인코딩하는 단계를 포함한다. In addition, the encoding according to the embodiment includes encoding the input image into the compressed bitstream using an HEVC codec.
또한, 실시예는 암호화된 영상을 복호화하는 방법으로써, 상기 암호화된 영상에 대응하는 암호화된 비트스트림(bitstream)을 수신하는 단계 - 상기 암호화된 비트스트림은 복수의 스타트 코드(Start code)와 복수의 NAL Unit을 포함하며, 상기 NAL Unit(Network Abstraction Layer Unit)은 암호화된 NAL Unit Header와 RBSP(Raw Byte Sequence Payload)로 구성됨 -, 상기 암호화된 비트스트림에서 스타트 코드를 검색하는 단계, 상기 검색된 스타트 코드 이후의 NAL Unit을 검색하는 단계, 변경 테이블에 따라, 상기 암호화된 NAL Unit Header를 복호화하여 복호화된 비트스트림을 생성하는 단계, 그리고 디코더(Decoder)가 상기 복호화된 비트스트림을 이용하여 비디오 데이터를 복원하는 단계를 포함하고 상기 변경 테이블은 상기 암호화된 NAL Unit Header의 첫 번째 바이트 값에 대한 변경 테이블이다. In addition, an embodiment is a method of decrypting an encrypted video, comprising the steps of receiving an encrypted bitstream corresponding to the encrypted video - The encrypted bitstream includes a plurality of start codes and a plurality of Includes a NAL unit, wherein the NAL Unit (Network Abstraction Layer Unit) is composed of an encrypted NAL Unit Header and RBSP (Raw Byte Sequence Payload) -, searching for a start code in the encrypted bitstream, the searched start code Searching for a subsequent NAL unit, decoding the encrypted NAL unit header according to a change table to generate a decrypted bitstream, and a decoder using the decrypted bitstream to restore video data and the change table is a change table for a first byte value of the encrypted NAL Unit Header.
또한, 실시예에 따른 암호화된 영상은 HEVC 코덱을 이용하여 생성되며, 상기 비디오 데이터를 복원하는 단계는, 상기 HEVC 코덱을 이용하여 상기 복호화된 비트스트림을 비디오 데이터로 복원하는 단계를 포함한다. Also, the encrypted image according to the embodiment is generated using an HEVC codec, and the step of restoring the video data includes restoring the decoded bitstream into video data using the HEVC codec.
또한, 실시예에 따른 복호화된 비트스트림을 생성하는 단계는, 상기 암호화된 NAL Unit Header와 RBSP의 바이트 값을 HEVC 표준과 비교하여, 상기 변경 테이블을 유추하는 단계, 그리고 상기 유추된 변경 테이블에 따라, 상기 암호화된 NAL Unit Header를 복호화하여 복호화된 비트스트림을 생성하는 단계를 포함한다. In addition, generating the decrypted bitstream according to the embodiment comprises comparing the encrypted NAL Unit Header and RBSP byte values with the HEVC standard to infer the change table, and according to the inferred change table , generating a decrypted bitstream by decrypting the encrypted NAL unit header.
또한, 실시예에 따른 복호화된 비트스트림을 생성하는 단계는, 상기 RBSP의 바이트 크기와 HEVC 표준을 비교하여 상기 변경 테이블을 유추하는 단계, 그리고 상기 유추된 변경 테이블에 따라, 상기 암호화된 NAL Unit Header를 복호화 하여 복호화된 비트스트림을 생성하는 단계를 포함한다. In addition, generating the decrypted bitstream according to the embodiment comprises inferring the change table by comparing the byte size of the RBSP with the HEVC standard, and according to the inferred change table, the encrypted NAL Unit Header and decoding to generate a decoded bitstream.
또한, 실시예에 따른 복호화된 비트스트림을 생성하는 단계는, 상기 RBSP의 값과 NAL Unit 순서를 HEVC 표준과 비교하여 상기 변경 테이블을 유추하는 단계, 그리고 상기 유추된 변경 테이블에 따라, 상기 암호화된 NAL Unit Header를 복호화 하여 복호화된 비트스트림을 생성하는 단계를 포함한다. In addition, generating the decrypted bitstream according to the embodiment comprises inferring the change table by comparing the RBSP value and the NAL unit order with the HEVC standard, and according to the inferred change table, the encrypted and generating a decoded bitstream by decoding the NAL unit header.
또한, 복호화된 비트스트림을 생성하는 단계는, 상기 암호화된 NAL Unit Header를 임의의 값으로 변경하고, 변경된 값에 따른 비디오 데이터 복원 성공 여부를 판단하는 단계, 상기 암호화된 NAL Unit Header의 변경값에 따른 비디오 데이터 복원 성공 여부를 저장하는 단계, 상기 변경값에 따른 비디오 데이터 복원 성공 여부에 따라 상기 변경 테이블을 유추하는 단계, 그리고 상기 유추된 변경 테이블에 따라, 상기 암호화된 NAL Unit Header를 복호화 하여 복호화된 비트스트림을 생성하는 단계를 포함한다. In addition, generating the decrypted bitstream includes changing the encrypted NAL unit header to an arbitrary value, determining whether video data restoration is successful according to the changed value, and changing the encrypted NAL unit header to the changed value. Storing whether the video data restoration is successful according to generating a bitstream.
또한, 실시예는 입력 영상을 암호화하는 장치로써, 상기 입력 영상을 압축된 비트스트림(bitstream)으로 인코딩하는 인코더(Encoder), 그리고 스타트 코드(Start code)를 이용하여 상기 압축된 비트스트림의 디코딩에 사용되는 복수의 바이트 정보를 변경하여 상기 비트스트림을 암호화하는 암호부를 포함하고, 상기 압축된 비트스트림은 상기 복수의 스타트 코드를 포함한다. In addition, the embodiment is an apparatus for encrypting an input image, an encoder that encodes the input image into a compressed bitstream, and a start code for decoding the compressed bitstream. and an encryption unit for encrypting the bitstream by changing a plurality of bytes of information used, wherein the compressed bitstream includes the plurality of start codes.
또한, 실시예에 따른 비트스트림은 복수의 NAL Unit(Network Abstraction Layer Unit)을 더 포함하고, 상기 NAL Unit은 NAL Unit Header와 RBSP(Raw Byte Sequence Payload)로 구성되며, 상기 암호부는, 상기 NAL Unit Header의 첫 번째 바이트 값에 대한 변경 테이블을 생성하고, 상기 비트스트림을 이용하여 상기 스타트 코드를 검색하며, 상기 스타트 코드를 이용하여 상기 NAL Unit Header를 검색하고, 상기 변경 테이블에 따라 모든 NAL Unit Header의 첫 번째 바이트 값을 변경한다. In addition, the bitstream according to the embodiment further includes a plurality of Network Abstraction Layer Units (NAL Units), wherein the NAL Unit is composed of a NAL Unit Header and a Raw Byte Sequence Payload (RBSP), and the encryption unit includes the NAL Unit A change table for the first byte value of the header is generated, the start code is retrieved using the bitstream, the NAL unit header is retrieved using the start code, and all NAL unit headers are retrieved according to the change table. Change the value of the first byte of
또한, 실시예에 따른 인코더는, HEVC 코덱을 이용하여 상기 입력 영상을 상기 압축된 비트스트림으로 인코딩한다. Also, the encoder according to the embodiment encodes the input image into the compressed bitstream by using an HEVC codec.
또한, 실시예는 암호화된 영상을 복호화하는 장치로써, 상기 암호화된 영상에 대응하는 암호화된 비트스트림(bitstream)을 수신하는 통신부 - 상기 암호화된 비트스트림은 복수의 스타트 코드(Start code)와 복수의 NAL Unit을 포함하며, 상기 NAL Unit(Network Abstraction Layer Unit)은 암호화된 NAL Unit Header와 RBSP(Raw Byte Sequence Payload)로 구성됨 -, 상기 암호화된 비트스트림에서 스타트 코드를 검색하고, 상기 검색된 스타트 코드 이후의 NAL Unit을 검색하며, 변경 테이블에 따라, 상기 암호화된 NAL Unit Header를 복호화하여 복호화된 비트스트림을 생성하는 복호화부, 그리고 상기 복호화된 비트스트림을 이용하여 비디오 데이터를 복원하는 디코더(Decoder)를 포함하고, 상기 변경 테이블은 상기 암호화된 NAL Unit Header의 첫 번째 바이트 값에 대한 변경 테이블이다. In addition, an embodiment is an apparatus for decrypting an encrypted image, a communication unit receiving an encrypted bitstream corresponding to the encrypted image - The encrypted bitstream includes a plurality of start codes and a plurality of includes a NAL Unit, wherein the NAL Unit (Network Abstraction Layer Unit) is composed of an encrypted NAL Unit Header and RBSP (Raw Byte Sequence Payload) -, a start code is retrieved from the encrypted bitstream, and after the retrieved start code A decoder that searches for a NAL unit of and, the change table is a change table for the value of the first byte of the encrypted NAL Unit Header.
또한, 실시예에 따른 암호화된 영상은 HEVC 코덱을 이용하여 생성되며, 상기 디코더는, 상기 HEVC 코덱을 이용하여 상기 복호화된 비트스트림을 비디오 데이터로 복원하는 단계를 포함한다. Also, the encrypted image according to the embodiment is generated using an HEVC codec, and the decoder includes the step of reconstructing the decoded bitstream into video data using the HEVC codec.
또한, 실시예에 따른 복호화부는, 상기 암호화된 NAL Unit Header와 RBSP의 바이트 값을 HEVC 표준과 비교하여, 상기 변경 테이블을 유추하고, 상기 유추된 변경 테이블에 따라, 상기 암호화된 NAL Unit Header를 복호화 하여 복호화된 비트스트림을 생성한다. In addition, the decryption unit according to the embodiment compares the byte values of the encrypted NAL Unit Header and RBSP with the HEVC standard, infers the change table, and decrypts the encrypted NAL Unit Header according to the inferred change table to generate a decoded bitstream.
또한, 실시예에 따른 복호화부는, 상기 RBSP의 바이트 크기와 HEVC 표준을 비교하여 상기 변경 테이블을 유추하고, 상기 유추된 변경 테이블에 따라, 상기 암호화된 NAL Unit Header를 복호화하여 복호화된 비트스트림을 생성한다. In addition, the decryption unit according to the embodiment compares the byte size of the RBSP with the HEVC standard to infer the change table, and according to the inferred change table, decrypts the encrypted NAL Unit Header to generate a decrypted bitstream do.
또한, 실시예에 따른 복호화부는, 상기 RBSP값과 NAL Unit 순서를 HEVC 표준과 비교하여 상기 변경 테이블을 유추하고, 상기 유추된 변경 테이블에 따라, 상기 암호화된 NAL Unit Header를 복호화하여 복호화된 비트스트림을 생성한다. In addition, the decryption unit according to the embodiment compares the RBSP value and the NAL unit order with the HEVC standard to infer the change table, and according to the inferred change table, decrypts the encrypted NAL unit header to decode the bitstream create
또한, 실시예에 따른 복호화부는, 상기 암호화된 NAL Unit Header를 임의의 값으로 변경하고, 변경된 값에 따른 비디오 데이터 복원 성공 여부를 판단하고, 상기 암호화된 NAL Unit Header의 변경값에 따른 비디오 데이터 복원 성공 여부를 저장하며, 상기 변경값에 따른 비디오 데이터 복원 성공 여부에 따라 상기 변경 테이블을 유추하고, 상기 유추된 변경 테이블에 따라, 상기 암호화된 NAL Unit Header를 복호화 하여 복호화된 비트스트림을 생성한다. In addition, the decryption unit according to the embodiment changes the encrypted NAL unit header to an arbitrary value, determines whether video data restoration is successful according to the changed value, and restores video data according to the changed value of the encrypted NAL unit header Success or failure is stored, the change table is inferred according to whether video data restoration is successful according to the change value, and the encrypted NAL unit header is decrypted according to the inferred change table to generate a decrypted bitstream.
실시예에 따른 비디오 암호화 및 복호화 방법 및 장치는 비트스트림의 일부를 암호화하여 비디오를 암호화하는데 필요한 계산의 복잡도를 감소시키고, 암호화된 비디오가 디코딩되는 것을 방지하며, 암호화의 보안 강도를 높일 수 있는 효과가 있다. Video encryption and decryption method and apparatus according to an embodiment encrypt a part of a bitstream to reduce the complexity of calculations required to encrypt the video, prevent the encrypted video from being decoded, and increase the security strength of encryption there is
도 1은 종래의 비디오 암호화 및 복호화 장치의 구성을 나타내는 블록도이다.
도 2는 실시예에 따른 비디오 암호화 및 복호화 장치의 구성 블록도이다.
도 3은 실시예에 따른 비트스트림(bitstream)의 구조를 설명하기 위한 개념도이다.
도 4는 실시예에 따른 Hex Edit 어플리케이션으로 표현된 HEVC 코덱으로 압축된 비디오 비트스트림의 예시이다.
도 5는 실시예에 따른 비디오 암호화 방법을 나타내는 흐름도이다.
도 6은 실시예에 따른 HEVC 압축 비트스트림이 암호화된 예시이다.
도 7은 실시예에 따른 비디오 복호화 방법을 나타내는 흐름도이다.
도 8은 실시예에 따른 비디오 복호화 방법을 나타내는 흐름도이다.
도 9는 실시예에 따른 NAL Unit Header의 바이트 값 변경에 따른 비디오 정상 재생 여부를 나타내는 도표이다. 1 is a block diagram showing the configuration of a conventional video encryption and decryption apparatus.
2 is a block diagram of a video encryption and decryption apparatus according to an embodiment.
3 is a conceptual diagram for explaining the structure of a bitstream according to an embodiment.
4 is an example of a video bitstream compressed with the HEVC codec expressed by the Hex Edit application according to the embodiment.
5 is a flowchart illustrating a video encryption method according to an embodiment.
6 is an example in which an HEVC compressed bitstream is encrypted according to an embodiment.
7 is a flowchart illustrating a video decoding method according to an embodiment.
8 is a flowchart illustrating a video decoding method according to an embodiment.
9 is a diagram illustrating whether video is normally reproduced according to a change in a byte value of a NAL unit header according to an embodiment.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시예를 상세히 설명하되, 동일하거나 유사한 구성요소에는 동일, 유사한 도면 부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. Hereinafter, the embodiments disclosed in the present specification will be described in detail with reference to the accompanying drawings, but identical or similar components are given the same and similar reference numerals, and overlapping descriptions thereof will be omitted. The suffixes "module" and "part" for components used in the following description are given or mixed in consideration of only the ease of writing the specification, and do not have distinct meanings or roles by themselves. In addition, in describing the embodiments disclosed in the present specification, if it is determined that detailed descriptions of related known technologies may obscure the gist of the embodiments disclosed in this specification, the detailed description thereof will be omitted. In addition, the accompanying drawings are only for easy understanding of the embodiments disclosed in the present specification, and the technical idea disclosed herein is not limited by the accompanying drawings, and all changes included in the spirit and scope of the present invention , should be understood to include equivalents or substitutes.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.Terms including an ordinal number such as 1st, 2nd, etc. may be used to describe various elements, but the elements are not limited by the terms. The above terms are used only for the purpose of distinguishing one component from another.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.When an element is referred to as being “connected” or “connected” to another element, it is understood that it may be directly connected or connected to the other element, but other elements may exist in between. it should be On the other hand, when it is said that a certain element is "directly connected" or "directly connected" to another element, it should be understood that the other element does not exist in the middle.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. The singular expression includes the plural expression unless the context clearly dictates otherwise.
본 출원에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.In the present application, terms such as “comprises” or “have” are intended to designate that a feature, number, step, operation, component, part, or combination thereof described in the specification exists, but one or more other features It should be understood that this does not preclude the existence or addition of numbers, steps, operations, components, parts, or combinations thereof.
이하, 도 1을 참조하여 종래의 비디오 암호화 및 복호화 장치의 구성을 설명한다. Hereinafter, a configuration of a conventional video encryption and decryption apparatus will be described with reference to FIG. 1 .
도 1은 종래의 비디오 암호화 및 복호화 장치의 구성을 나타내는 블록도이다. 1 is a block diagram showing the configuration of a conventional video encryption and decryption apparatus.
도 1을 참조하면, 종래의 비디오 암호화 및 복호화 장치는 인코더(110), Encryptor(120), 네트워크(130), Decryptor(140), 및 디코더(150)를 포함한다. Referring to FIG. 1 , a conventional video encryption and decryption apparatus includes an
인코더(110)는, 입력된 비디오 데이터(I)를 압축된 비트스트림(B)으로 변환한다. Encryptor(120)는, 압축된 비트스트림(B)을 이용하여 암호화된 비트스트림(B’)를 생성한다. 이때 Encryptor(120)는 Naive방식 또는 Selective 암호화 방식을 사용한다. The
Naive 방식 또는 Selective 암호화 방식은 비디오 비트스트림의 전체 또는 일부를 AES(Advanced Encryption Standard)와 같은 Encryption 알고리즘을 사용한다. Naive 암호화 방식은 비디오 데이터 전체를 암호화 하기 때문에 보안의 강도가 높지만 계산량이 많고 암호화 과정에서 데이터의 증가가 커질 수 있는 단점이 있다. The naive method or the selective encryption method uses an encryption algorithm such as AES (Advanced Encryption Standard) for all or part of a video bitstream. Because the naive encryption method encrypts the entire video data, the security strength is high, but there is a disadvantage that the amount of calculation is large and the data increase during the encryption process is large.
Selective 암호화 방식은 비디오 데이터 일부를 암호화 하여 비디오 내용을 온전히 파악하지 못하도록 비디오를 왜곡시키지만 디코딩이 가능해 대략적인 내용을 파악할 수 있어 보안의 강도가 낮다는 문제점이 있다. The selective encryption method encrypts a part of the video data and distorts the video so that the contents of the video cannot be fully understood.
Encryptor(120)에서 생성된 암호화된 비트스트림(B’)은 네트워크(130)를 이용하여 Decryptor(130)으로 전송된다. Decryptor(130)은 암호화된 비트스트림(B’)을 해독하여 복호화된 비트스트림(B)를 생성한다. 이때 Dectyptor(130)는 Encryptor(120)과 같은 Naive 방식 또는 Selective 암호화 방식을 이용하여 암호화된 비트스트림(B’)을 해독한다. The encrypted bitstream (B') generated by the
Dectyptor(130)에서 생성된 복호화된 비트스트림(B)는 디코더(150)에 입력되고, 디코더(150)는, 복호화된 비트스트림(B)을 재생 가능한 비디오 데이터(I)로 변환한다. The decoded bitstream B generated by the
이하, 도 2를 참조하여 실시예에 따른 비디오 암호화 및 복호화 장치의 구성을 설명한다. Hereinafter, a configuration of a video encryption and decryption apparatus according to an embodiment will be described with reference to FIG. 2 .
도 2는 실시예에 따른 비디오 암호화 및 복호화 장치의 구성 블록도이다. 2 is a block diagram of a video encryption and decryption apparatus according to an embodiment.
도 2를 참조하면, 실시예에 따른 비디오 암호화 및 복호화 장치는 인코더(110), 암호화부(Scrambler, 210), 통신부(220), 복호화부(Descrambler, 230) 및 디코더(150)를 포함한다. Referring to FIG. 2 , the video encryption and decryption apparatus according to the embodiment includes an
인코더(110)는, 입력된 비디오 데이터(I)를 압축된 비트스트림(B)으로 변환한다. 이때, 인코더(110)는 HEVC코덱을 이용하여 입력 비디오 데이터(I)를 압축된 비디오 비트스트림(B)으로 변환할 수 있다. The
암호화부(Scrambler, 210)는, 압축된 비트스트림(B)을 이용하여 암호화된 비트스트림(B’)를 생성한다. 이때, 도 1의 Encryptor(120)와 달리 AES와 같은 Encryption 알고리즘을 사용하지 않는다. 즉, Native방식과 Selective 방식을 사용하지 않는다. 대신, 암호화부(Scrambler, 210)는, 비디오 비트스트림(B)에 포함되어 있는 스타트 코드(Start code)를 검색하고, 스타트 코드에 이후의 복수의 바이트 중 디코딩에 사용되는 중요한 특정 바이트를 뒤섞어 암호화 한다. 즉, 암호화부(Scrambler, 210)는 압축된 비디오 비트스트림(B)에 포함된 스타트 코드를 이용하여 디코딩에 사용되는 특정 바이트 정보를 변경함으로써 암호화된 비트스트림(B’)을 생성한다. 암호화된 비트스트림(B’)을 생성하는 방법에 관한 더욱 상세한 내용은 도 3 내지 도 6을 이용하여 후술한다. The encryption unit (Scrambler, 210) generates an encrypted bitstream (B') using the compressed bitstream (B). In this case, unlike the
통신부(220)는 네트워크, 유무선 통신망을 이용하여 암호화된 비트스트림을 복호화부(Descrambler, 230)로 전송한다. The
복호화부(Descrambler, 230)는, 통신부(220)를 이용하여 수신한 암호화된 비트스트림(B’)을 해독한다. 이때, 암호화부(Scrambler, 210)와 마찬가지로 암호화된 비트스트림(B’)에 포함된 스타트 코드를 검색하고 이를 이용하여 암호화된 바이트 정보를 해독한다. 즉, 복호화부(Descrambler, 230)는, 암호화된 비트스트림(B’)에 포함된 스타트 코드를 이용하여 암호화된 바이트 정보를 해독함으로써 압축된 비디오 비트스트림(B)를 생성한다. 암호화된 비트스트림(B’)를 복호화 하는 더욱 상세한 방법은 도 7 내지 도9를 참조하여 후술한다.The decryption unit (Descrambler, 230) decrypts the received encrypted bitstream (B') using the
디코더(150)는 복호화부(Descrambler, 230)에서 생성된 압축된 비디오 비트스트림(B)를 재생 가능한 비디오 데이터로 변환한다. The
이하, 도 3을 참조하여 스타트 코드와 NAL Unit(Network Abstraction Layer Unit)을 설명한다. Hereinafter, a start code and a Network Abstraction Layer Unit (NAL Unit) will be described with reference to FIG. 3 .
도 3은 실시예에 따른 비트스트림(bitstream)의 구조를 설명하기 위한 개념도이다. 3 is a conceptual diagram for explaining the structure of a bitstream according to an embodiment.
도 3을 참조하면, HEVC 코덱으로 압축된 비디오 비트스트림은 스타트코드를 기반으로 파생한다. 더욱 구체적으로 인코더(110)에서 생성된 압축된 비디오 비트스트림(B)은 스타트 코드와 NAL Unit을 포함한다. Referring to FIG. 3 , a video bitstream compressed with the HEVC codec is derived based on a start code. More specifically, the compressed video bitstream B generated by the
스타트 코드 이후 배치된 NAL Unit은 NAL Unit Header와 RBSP(Raw Byte Sequence Payload)로 구성된다. NAL Unit Header는 2바이트의 고정된 크기를 갖는다. NAL Unit Header는forbidden zero bit, nal unit type 및 nuh layer id를 포함한다.The NAL unit arranged after the start code consists of a NAL unit header and RBSP (Raw Byte Sequence Payload). The NAL Unit Header has a fixed size of 2 bytes. The NAL Unit Header includes a forgotten zero bit, a nal unit type, and a nuh layer id.
NAL Unit Header의 최상위부터 1비트는 forbidden zero bit를 의미하며, forbidden zero bit는 항상 0의 값을 가진다. forbidden zero bit 이후에 위치한 2비트는 nal unit type을 의미하며 0~63의 값을 가진다. nal unit type 다음에 위치한 6비트는 nuh layer id를 의미하며 0~63의 값을 가진다. 다만, nuh layer id는 기본 계층의 경우 항상 0의 값을 가진다. 1 bit from the most significant of the NAL Unit Header means the forbidden zero bit, and the forbidden zero bit always has a value of 0. 2 bits located after the forbidden zero bit means nal unit type and has a value of 0~63. 6 bits located after nal unit type means nuh layer id and has a value of 0~63. However, the nuh layer id always has a value of 0 in the case of the base layer.
그러므로, 기본 계층의 경우, forbidden zero bit와 nuh layer id는 0의 값을 가지므로, NAL Unit Header의 첫 번째 바이트는 nal unit type에 따라 결정된다. Therefore, in the case of the base layer, the forbidden zero bit and the nuh layer id have a value of 0, so the first byte of the NAL Unit Header is determined according to the nal unit type.
이하, 도 4를 참조하여 비트스트림의 스타트 코드와 NAL Unit을 설명한다. Hereinafter, the start code and the NAL unit of the bitstream will be described with reference to FIG. 4 .
도 4는 실시예에 따른 Hex Edit 어플리케이션으로 표현된 HEVC 코덱으로 압축된 비디오 비트스트림의 예시이다.4 is an example of a video bitstream compressed with the HEVC codec expressed by the Hex Edit application according to the embodiment.
도 4를 참조하면, 스타트 코드는 00 00 01의 값을 가진다. HEVC 코덱으로 압축된 비디오 비트스트림은 스타트 코드와 NAL Unit의 연속으로 구성됨으로 스타트 코드를 검색함으로써 NAL Unit을 탐색할 수 있다. 즉, 스타트 코드를 이용하여 NAL Unit의 첫 번째 바이트 값을 탐색할 수 있다. Referring to FIG. 4 , the start code has a value of 00 00 01. Since the video bitstream compressed with the HEVC codec consists of a continuation of a start code and a NAL unit, the NAL unit can be searched by searching for the start code. That is, the first byte value of the NAL unit can be searched for by using the start code.
이하 표 1을 참조하여 nal unit type값에 따른 NAL Unit Header의 첫 번째 바이트 값을 설명한다. The first byte value of the NAL Unit Header according to the nal unit type value will be described with reference to Table 1 below.
[표 1][Table 1]
표 1은 HEVC 표준 문서에서 정의한 nal unit type 값에 따른 NAL Unit Header의 첫 번째 바이트 값을 정리한 표이다. Table 1 is a table summarizing the value of the first byte of the NAL Unit Header according to the nal unit type value defined in the HEVC standard document.
표 1에서와 같이 nal unit type은 0~63의 값을 가질 수 있지만, 10~15, 22~31, 41~47, 48~63의 값은 정의되지 않았으므로 사용되지 않는다. 따라서, 실제 사용하는 값은 0~9, 16~21, 32~40이다. As shown in Table 1, the nal unit type can have a value of 0~63, but the values of 10~15, 22~31, 41~47, and 48~63 are not used because they are not defined. Therefore, the values that are actually used are 0~9, 16~21, and 32~40.
예를 들어, nal unit type이 32값이고 forbidden zero bit와 nuh layer id의 값이 0이면 NAL Unit Header의 첫 번째 바이트는 0x40의 Hex 값을 가진다. 그러므로, 도 4에 표시된 스타트 코드 이후에 위치한 NAL Unit Header의 첫 번째 바이트가 0x40이면 nal unit type이 VPS_NUT(Video Parameter Set)임을 의미한다. 또한, NAL Unit Header의 첫 번째 바이트가 0x42이면 nal unit type이 SPS_NUT(Sequence Parameter Set)임을 의미하고, NAL Unit Header의 첫 번째 바이트가 0x44이면 nal unit type이 PPS_NUT(Picture Parameter Set)임을 의미하고, NAL Unit Header의 첫 번째 바이트가 0x26이면 nal unit type이 IDR_W_RADL(Instantaneous Decoding Refresh With RADL Pictures)임을 의미한다. For example, if the nal unit type is 32 and the forbidden zero bit and nuh layer id are 0, the first byte of the NAL Unit Header has a Hex value of 0x40. Therefore, if the first byte of the NAL Unit Header located after the start code shown in FIG. 4 is 0x40, it means that the nal unit type is VPS_NUT (Video Parameter Set). In addition, if the first byte of the NAL Unit Header is 0x42, it means that the nal unit type is SPS_NUT (Sequence Parameter Set), and if the first byte of the NAL Unit Header is 0x44, it means that the nal unit type is PPS_NUT (Picture Parameter Set), If the first byte of the NAL Unit Header is 0x26, it means that the nal unit type is IDR_W_RADL (Instantaneous Decoding Refresh With RADL Pictures).
HEVC 디코더는 스타트 코드 다음에 오는 NAL Unit Header의 첫 번째 바이트에 따라 각각 다른 디코딩 함수를 수행한다. 따라서, NAL Unit Header의 첫 번째 바이트 정보는 디코딩을 함에 있어 중요한 정보이다. 실시예에 따른 비디오 암호화 방법은 NAL Unit Header의 첫 번째 바이트 값을 변경함으로써 디코더가 정삭적으로 디코딩을 할 수 없게 함으로써 비디오를 암호화 한다. 또한, 암호화된 NAL Unit Header의 첫 번째 바이트 값을 원래 값으로 변경함으로써 암호화된 비디오의 복호화를 수행한다. The HEVC decoder performs different decoding functions according to the first byte of the NAL Unit Header following the start code. Accordingly, the first byte information of the NAL Unit Header is important information for decoding. The video encryption method according to the embodiment encrypts the video by changing the value of the first byte of the NAL Unit Header so that the decoder cannot correctly decode it. In addition, the encrypted video is decrypted by changing the value of the first byte of the encrypted NAL Unit Header to the original value.
더불어, 상술한 바이트 값은 예시에 불과한 값으로서, 실시예가 이에 한정되는 것은 아니다. In addition, the above-described byte value is merely an example, and the embodiment is not limited thereto.
이하, 도 5를 참조하여 실시예에 따른 비디오 암호화 방법을 설명한다. Hereinafter, a video encryption method according to an embodiment will be described with reference to FIG. 5 .
도 5는 실시예에 따른 비디오 암호화 방법을 나타내는 흐름도이다.5 is a flowchart illustrating a video encryption method according to an embodiment.
도 5를 참조하면, 단계(S310)에서, 입력된 비디오 영상은 인코더(110)을 이용하여 압축된 비디오 비트스트림으로 변환된다. 이때, HEVC 코덱을 이용하여 입력 영상을 비트스트림으로 변환할 수 있다. Referring to FIG. 5 , in step S310 , an input video image is converted into a compressed video bitstream using the
단계(S320)에서는, 암호화부(Scrambler, 210)를 이용하여 NAL Unit Header 변경 테이블을 생성한다. 상술한 바와 같이 NAL Unit Header의 첫 번째 바이트 값을 변경함으로써 암호화를 수행함으로, NAL Unit Header의 첫 번째 바이트 값을 상술한 표 1의 “First Byte of NAL Unit Header”열에서와 같이 실제 사용하고 있는 25개의 값 범위 안에서 랜덤하게 변경하기 위해 NAL Unit Header 변경 테이블을 생성한다.In step S320, a NAL Unit Header change table is generated using the encryption unit (Scrambler, 210). As described above, by performing encryption by changing the first byte value of the NAL Unit Header, the first byte value of the NAL Unit Header is actually used as in the “First Byte of NAL Unit Header” column of Table 1 above. Creates a NAL Unit Header change table to change randomly within a range of 25 values.
이하, 표 2를 참조하여 NAL Unit Header 변경 테이블의 예시를 설명한다. Hereinafter, an example of a NAL Unit Header change table will be described with reference to Table 2.
[표 2][Table 2]
표 2는 NAL Unit Header 변경 테이블의 예시이다. 표 2의 NAL Unit Header 변경 테이블은 압축된 비디오 비트스트림의 NAL Unit Header의 첫 번째 바이트 값을 원래 값에서 변경 값으로 변경됨을 의미한다. 이때 변경 값은 “First Byte of NAL Unit Header”열에서와 같이 실제 사용하고 있는 25개의 값 범위 안에서 랜덤하게 변경되나 원래 값이 변경값과 서로 같지 않도록 NAL Unit Header 변경 테이블을 생성한다. 상술한 표 2에 기재된 값은 예시에 불과하며, 실시예가 이에 한정되는 것은 아니다. Table 2 is an example of a NAL Unit Header change table. The NAL Unit Header change table of Table 2 means that the value of the first byte of the NAL Unit Header of the compressed video bitstream is changed from the original value to the changed value. At this time, the changed value is changed randomly within the range of 25 values actually used as in the “First Byte of NAL Unit Header” column, but the NAL Unit Header change table is created so that the original value is not the same as the changed value. The values described in Table 2 are merely examples, and the examples are not limited thereto.
단계(S330)에서, 암호화부(Scrambler, 210)는 단계(S310)에서 생성된 압축된 비디오 비트스트림에 포함된 스타트 코드를 검색한다. HEVC 코덱으로 압축된 비트스트림은 스타트코드와 NAL Unit의 조압으로 구성되므로, 스타트 코드를 검색함으로써 NAL Unit을 검색하기 위함이다. In step S330 , the
단계(S340)에서, 암호화부(Scrambler, 210)는NAL Unit Header의 첫 번째 바이트 값을 탐색하고, 단계(S320)에서 생성한 NAL Unit Header 변경 테이블의 원래 값에 대응하여 변경 값으로 NAL Unit Header의 첫 번째 바이트 값을 변경한다. NAL Unit Header는 스타트 코드의 종료 직후에 나타난다. 따라서, 단계(S330)에서 검색된 스타트 코드를 이용하여 NAL Unit Header를 탐색할 수 있다. 또한, 단계(S340)에서, NAL Unit Header의 첫 번째 바이트 값을 변경함으로써 디코딩이 수행될 수 없도록 하여 비디오를 암호화 할 수 있다. In step S340, the encryption unit (Scrambler, 210) searches for the value of the first byte of the NAL Unit Header, and corresponds to the original value of the NAL Unit Header change table generated in step S320. Change the value of the first byte of The NAL Unit Header appears immediately after the end of the start code. Accordingly, the NAL unit header may be searched using the start code found in step S330 . Also, in step S340, by changing the value of the first byte of the NAL Unit Header, it is possible to encrypt the video so that decoding cannot be performed.
단계(S340)에서는, 단계(S310)에서 생성된 압축된 비디오 비트스트림에 포함된 모든 NAL Unit Header의 첫 번째 바이트 값이 변경되어 암호화되었는지를 확인한다. 그 후, 모든 NAL Unit Header의 값이 변경되지 않은 경우, 단계(S330)을 다시 수행한다. 즉, 다시 스타트 코드를 검색하여 변경되지 않은 NAL Unit Header의 첫 번째 바이트 값을 변경한다. 모든 NAL Unit Header의 값이 변경된 경우 입력 영상의 암호화가 완료된다. In step S340, it is checked whether the first byte values of all NAL unit headers included in the compressed video bitstream generated in step S310 are changed and encrypted. After that, when the values of all NAL Unit Header are not changed, step S330 is performed again. That is, the first byte value of the unaltered NAL Unit Header is changed by searching for the restart code. When the values of all NAL Unit Header are changed, encryption of the input video is completed.
이하, 도 6을 참조하여 실시예에 따른 비디오 암호화 결과를 설명한다. Hereinafter, a video encryption result according to the embodiment will be described with reference to FIG. 6 .
도 6은 실시예에 따른 HEVC 압축 비트스트림이 암호화된 예시이다.6 is an example in which an HEVC compressed bitstream is encrypted according to an embodiment.
도 6를 참조하면, B1은 압축된 비디오 비트스트림이 암호화되기 이전의 압축 비트스트림을 나타내며, B2는 B1의 압축 비트스트림이 암호화된 결과를 나타낸다. Referring to FIG. 6 , B1 indicates a compressed bitstream before the compressed video bitstream is encrypted, and B2 indicates a result of encrypting the compressed bitstream of B1.
점선으로 표시된 00 00 01은 스타트 코드를 나타내며, 스타트 코드 직후 실선으로 표시된 바이트 값은 NAL Unit Header의 첫 번째 바이트 값을 의미한다. 암호화 이전 압축 비트스트림의 NAL Unit Header의 첫 번째 바이트 값은 0x40, 0x42, 0x44, 0x26, 0x02, 0x04이다. 00 00 01 indicated by a dotted line indicates a start code, and a byte value indicated by a solid line immediately after the start code indicates the first byte value of the NAL Unit Header. The first byte values of the NAL Unit Header of the compressed bitstream before encryption are 0x40, 0x42, 0x44, 0x26, 0x02, 0x04.
암호화 이전 압축 비트스트림의 NAL Unit Header의 첫 번째 바이트 값은 상술한 표 2의 NAL Unit Header 변경 테이블에 대응하여 값이 변경된다. 즉, 암호화 이전 압축 비트스트림의 NAL Unit Header의 첫 번째 바이트 값인 0x40, 0x42, 0x44, 0x26, 0x02, 0x04은 각각 0x4C, 0x24, 0x0E, 0x00, 0x06, 0x48로 변경됨으로써 암호화된 비트스트림이 생성됨을 나타낸다. The value of the first byte of the NAL unit header of the compressed bitstream before encryption is changed in response to the NAL unit header change table of Table 2 above. That is, 0x40, 0x42, 0x44, 0x26, 0x02, 0x04, which are the first byte values of the NAL Unit Header of the compressed bitstream before encryption, are changed to 0x4C, 0x24, 0x0E, 0x00, 0x06, 0x48, respectively, indicating that an encrypted bitstream is generated. indicates.
이하, 도 7을 참조하여 실시예에 따른 비디오 복호화 방법을 설명한다. Hereinafter, a video decoding method according to an embodiment will be described with reference to FIG. 7 .
도 7은 실시예에 따른 비디오 복호화 방법을 나타내는 흐름도이다.7 is a flowchart illustrating a video decoding method according to an embodiment.
도 7을 참조하면, 단계(S410)에서는, 통신부(220)를 이용하여 상술한 비디오 암호화 방법을 이용하여 생성된 암호화된 비트스트림을 수신한다. 또한, 단계(S420)에서는, 통신부(220)를 이용하여 암호화된 비트스트림을 생성하는데 사용된 NAL Unit Header 변경 테이블을 수신할 수 있다. Referring to FIG. 7 , in step S410 , an encrypted bitstream generated using the above-described video encryption method is received using the
단계(S430)에서, 복호화부(Descrambler, 230)는 암호화된 비트스트림에서 스타트 코드를 검색하고, 스타트 코드 이후에 존재하는 NAL Unit을 탐색할 수 있다. 단계(S440)에서, 복호화부(Descrambler, 230)는 단계(S420)에서 수신한 NAL Unit Header 변경 테이블을 이용하여 변경된 NAL Unit Header의 첫 번째 바이트 값을 원래 값으로 복원하여 암호해독을 한다. In step S430, the decoder (Descrambler, 230) may search for a start code in the encrypted bitstream, and search for a NAL unit existing after the start code. In step S440, the decoder (Descrambler, 230) restores the first byte value of the changed NAL unit header to the original value using the NAL unit header change table received in step S420, and decrypts it.
단계(S450)에서는 암호화된 비트스트림에 포함된 모든 NAL Unit Header의 첫 번째 바이트가 원래의 값으로 복호화 되었는지를 확인하여, 모든 NAL Unit Header의 첫 번째 바이트가 원래의 값으로 복호화 되지 않은 경우, 단계(S430)을 다시 수행한다. 즉, 다시 스타트 코드를 검색하여 복호화 되지 않은 NAL Unit Header의 첫 번째 바이트를 원래의 값으로 복호화 한다. 모든 NAL Unit Header의 첫 번째 바이트가 원래의 값으로 복호화된 경우, 복호화 단계가 완료된다. In step S450, it is checked whether the first byte of all NAL unit headers included in the encrypted bitstream are decrypted to their original values. (S430) is performed again. That is, the first byte of the undecoded NAL Unit Header is decoded to the original value by searching for the start code again. When the first byte of all NAL Unit Header is decoded to the original value, the decoding step is completed.
이하, 도 8을 참조하여 실시예에 따른NAL Unit Header 변경 테이블 유추 방법 및 비디오 복호화 방법을 설명한다. Hereinafter, a method of inferring a NAL unit header change table and a video decoding method according to an embodiment will be described with reference to FIG. 8 .
도 8은 실시예에 따른 비디오 복호화 방법을 나타내는 흐름도이다.8 is a flowchart illustrating a video decoding method according to an embodiment.
도 8을 참조하면, NAL Unit Header 변경 테이블을 유추하여 비디오를 복호화 하는 방법은 도 7의 비디오 복호화 방법과 달리 암호화에 사용된 NAL Unit Header 변경 테이블을 수신하지 않고 NAL Unit Header 변경 테이블을 추정하여 비디오를 복호화한다. Referring to FIG. 8, the method of decoding video by inferring the NAL Unit Header change table does not receive the NAL Unit Header change table used for encryption, unlike the video decryption method of FIG. 7, but by estimating the NAL Unit Header change table for video to decrypt
단계(S410)에서, 암호화된 비트스트림을 수신한 후, 단계(S460)에서, 복호화부(Descrambler, 230)는 암호화된 비트스트림과 HEVC 표준 정보를 이용하여 암호화에 사용된 NAL Unit Header 변경 테이블을 추정한다. In step S410, after receiving the encrypted bitstream, in step S460, the decoder (Descrambler, 230) uses the encrypted bitstream and HEVC standard information to change the NAL Unit Header change table used for encryption. estimate
암호화에 사용된 NAL Unit Header 변경 테이블을 알 수 없는 경우, NAL Unit Header의 첫 번째 바이트의 암호화 전 원래의 25개 값에 대응하여 변경되는 25개의 값을 찾기 위해서는 25!(15,511,210,043,330,985,984,000,000)개의 경우의 수가 존재한다. 하나의 압축 비트스트림 안에 포함되는 최소한의 nal unit type의 값의 종류가 4개라고 해도 25P4(303,600)개의 경우의 수가 존재하므로 변경 테이블을 찾기 위해서는 많은 계산량이 필요한 문제점이 있다. If the NAL Unit Header change table used for encryption is unknown, the number of 25! (15,511,210,043,330,985,984,000,000) cases is to find 25 values that are changed in correspondence to the original 25 values before encryption of the first byte of the NAL Unit Header. exist. Even if there are 4 types of the minimum nal unit type value included in one compressed bitstream, there are 25 P 4 (303,600) cases, so there is a problem that a large amount of calculation is required to find the change table.
따라서, 암호화에 사용된 NAL Unit Header 변경 테이블을 알 수 없는 경우, 비트스트림의 특징을 이용하여 암호화에 사용된 NAL Unit Header 변경 테이블을 유추할 수 있다. 먼저, 도 3에서 설명한 바와 같이 NAL Unit은 NAL Unit Header와 RBSP로 구성된다. 따라서, RBSP가 어떠한 값을 가지는지에 따라 NAL Unit Header의 첫 번째 바이트의 원래 값을 추정할 수 있다. Therefore, when the NAL Unit Header change table used for encryption is unknown, the NAL Unit Header change table used for encryption can be inferred by using the characteristics of the bitstream. First, as described with reference to FIG. 3 , the NAL unit consists of a NAL unit header and an RBSP. Accordingly, the original value of the first byte of the NAL Unit Header can be estimated according to the value of the RBSP.
이하, 표 3 및 표 4를 참조하여 RBSP의 값을 이용하여 NAL Unit Header 변경 테이블을 추정하는 방법을 설명한다. Hereinafter, a method of estimating the NAL unit header change table using the RBSP value will be described with reference to Tables 3 and 4.
[표 3][Table 3]
표 3은 표 1에서 nal unit type이 32의 값을 가지고, First Byte of NAL Unit Header가 0x40의 값을 갖는 VPS_NUT(Video Parameter Set)일 때 HEVC 표준 정보에서 확인한 RBSP 신텍스의 일부이다. VPS_NUT의 RBSP는 처음 2바이트가 vps_video_parameter_set_id(4비트), vps_baase_layer_internal_flag(1비트), vps_base_layer_available_flag(1비트), vps_max_layers_minusl(6비트), vps_max_sub_layers_minusl(3비트), vps_temporal_id_nesting_flag(1비트)로 구성되어 있으며, 그 다음 2바이트가 vps_reserved_0xffff_16bits(16비트)로 구성되어 있다. 그러므로 암호화된 비트스트림에서 스타트 코드 다음 NAL Unit Header 2바이트를 읽고 그다음 RBSP 4바이트를 읽어 처음 2바이트가 0xFFFF가 아니고 이후 2바이트가 0xFFFF이면 NAL Unit Header의 첫 번째 바이트는 0x40의 VPS_NUT이어야 되는 것을 알 수 있다. Table 3 is a part of the RBSP syntax confirmed in HEVC standard information when the nal unit type in Table 1 has a value of 32 and the First Byte of NAL Unit Header is VPS_NUT (Video Parameter Set) having a value of 0x40. The RBSP of VPS_NUT consists of the first 2 bytes: vps_video_parameter_set_id (4 bits), vps_baase_layer_internal_flag (1 bit), vps_base_layer_available_flag (1 bit), vps_max_layers_minusl (6 bits), vps_max_sub_layers_minusl (6 bits), then vps_max_sub_nesting_minusl (6 bits), vps_max_sub_layers_minusl (3 bits), 2 bytes are composed of vps_reserved_0xffff_16bits (16 bits). Therefore, in the encrypted bitstream, read 2 bytes of the NAL Unit Header following the start code and then read 4 bytes of RBSP to know that if the first 2 bytes are not 0xFFFF and the subsequent 2 bytes are 0xFFFF, the first byte of the NAL Unit Header should be VPS_NUT of 0x40. can
[표 4][Table 4]
표 4는 표 1에서 nal unit type이 38이며, First Byte of NAL Unit Header가 0x4C의 값을 갖는 FD_NUT일 때 HEVC 표준문서에서 확인한 RBSP 신텍스이다. Table 4 shows the RBSP syntax confirmed in the HEVC standard document when the nal unit type in Table 1 is 38 and the First Byte of NAL Unit Header is FD_NUT having a value of 0x4C.
표 4를 참조하면, FD_NUT의 RBSP는 모든 바이트가 0xFF로 구성되어 있다. 그러므로 암호화된 비트스트림에서 스타트 코드 다음 NAL Unit Header 2바이트를 읽고 그다음 RBSP 4바이트를 읽어 0xFFFFFFFF이면 NAL Unit Header의 첫 번째 바이트는 0x4C의 FD_NUT 이어야 됨을 유추할 수 있다. 따라서, 이러한 방식으로 RBSP의 값을 이용하여 NAL Unit Header 변경 테이블을 유추할 수 있다. Referring to Table 4, in the RBSP of FD_NUT, all bytes are composed of 0xFF. Therefore, it can be inferred that the first byte of the NAL Unit Header should be FD_NUT of 0x4C if 0xFFFFFFFF by reading 2 bytes of the NAL Unit Header next to the start code from the encrypted bitstream and reading the next 4 bytes of RBSP. Accordingly, the NAL Unit Header change table can be inferred using the RBSP value in this way.
또한, RBSP의 크기에 따라 암호화에 사용된 NAL Unit Header 변경 테이블을 추정할 수 있다. 이하 표 5 내지 표 7을 참조하여 RBSP의 크기에 따라 암호화에 사용된 NAL Unit Header 변경 테이블을 추정하는 방법을 설명한다. In addition, the NAL Unit Header change table used for encryption may be estimated according to the size of the RBSP. Hereinafter, a method of estimating the NAL Unit Header change table used for encryption according to the size of the RBSP will be described with reference to Tables 5 to 7.
[표 5][Table 5]
표 5는 표1에서 nal unit type이 35이여서, First Byte of NAL Unit Header가 0x46의 값을 가지는 AUD_NUT일 때 HEVC 표준 정보에서 확인한 RBSP 신텍스이다. AUD_NUT의 RBSP는 3비트의 pic_type과 바이트 정렬을 위한 5비트의 rbsp_trailing_bits로 구성되어 RBSP의 크기는 1바이트이다. 그러므로 암호화된 비트스트림에서 스타트 코드 다음 NAL Unit Header 2바이트를 읽고 그 다음 RBSP 1바이트 이후에 스타트 코드가 오면 NAL Unit Header의 첫 번째 바이트는 0x46의 AUD_NUT이어야 됨을 알 수 있다. Table 5 shows the RBSP syntax confirmed in HEVC standard information when the nal unit type is 35 in Table 1 and the First Byte of NAL Unit Header is AUD_NUT having a value of 0x46. The RBSP of AUD_NUT is composed of 3-bit pic_type and 5-bit rbsp_trailing_bits for byte alignment, and the size of the RBSP is 1 byte. Therefore, it can be seen that the first byte of the NAL Unit Header should be AUD_NUT of 0x46 after reading 2 bytes of the NAL Unit Header next to the start code from the encrypted bitstream and the start code comes after 1 byte of the RBSP.
[표 6][Table 6]
표6은 표 1에서 nal unit type이 36이여서, First Byte of NAL Unit Header가 0x48의 값을 가지는 EOS_NUT 일 때 HEVC 표준 정보에서 확인한 RBSP 신텍스이다. EOS_NUT의 RBSP 크기는 0바이트이다. 그러므로 암호화된 비트스트림에서 스타트코드 다음 NAL Unit Header 2바이트를 읽고 그다음 바로 스타트 코드가 오면 NAL Unit Header의 첫 번째 바이트는 0x48의 EOS_NUT이어야 함을 알 수 있다. Table 6 shows the RBSP syntax confirmed in HEVC standard information when the nal unit type is 36 in Table 1 and the First Byte of NAL Unit Header is EOS_NUT having a value of 0x48. The RBSP size of EOS_NUT is 0 bytes. Therefore, after reading 2 bytes of the NAL Unit Header next to the start code from the encrypted bitstream, and the start code immediately following the start code, it can be seen that the first byte of the NAL Unit Header should be EOS_NUT of 0x48.
[표 7][Table 7]
표 7은 표 1에서 nal unit type이 37이여서, First Byte of NAL Unit Header가 0x4A의 값을 갖는 EOB_NUT일 때 HEVC 표준 문서에서 확인한 RBSP 신텍스이다. Table 7 shows the RBSP syntax confirmed in the HEVC standard document when the nal unit type is 37 in Table 1 and the First Byte of NAL Unit Header is EOB_NUT having a value of 0x4A.
EOB_NUT의 RBSP 크기는 0바이트이고 비트스트림 가장 끝에 존재한다. 그러므로 암호화된 비트스트림에서 스타트코드 다음 NAL Unit Header 2바이트를 읽고 비트스트림이 끝나면 NAL Unit Header의 첫 번째 바이트는 0x4A의 EOB_NUT이어야 함을 알 수 있다. 따라서, 이러한 방식으로 RBSP의 크기에 따라 암호화에 사용된 NAL Unit Header 변경 테이블을 추정할 수 있다.The RBSP size of EOB_NUT is 0 bytes and exists at the end of the bitstream. Therefore, it can be seen that the first byte of the NAL Unit Header should be EOB_NUT of 0x4A when 2 bytes of the NAL Unit Header next to the start code are read from the encrypted bitstream and the bitstream is finished. Therefore, in this way, it is possible to estimate the NAL Unit Header change table used for encryption according to the size of the RBSP.
또한, RBSP의 값과 NAL Unit 순서에 따라 NAL Unit Header의 변경 테이블을 추정할 수 있다. 표 1의 NAL Unit들 중에서 VPS_NUT의 NAL Unit 다음에는 SPS_NUT 또는 PPS_NUT의 NAL Unit이 오는 순서를 가진다. 그리고 SPS_NUT의 NAL Unit 다음에는 PPS_NUT의 NAL Unit이 오는 순서를 가진다. In addition, the change table of the NAL Unit Header may be estimated according to the RBSP value and the NAL Unit order. Among the NAL Units in Table 1, the NAL Unit of VPS_NUT is followed by the NAL Unit of SPS_NUT or PPS_NUT. And the NAL unit of SPS_NUT is followed by the NAL unit of PPS_NUT.
VPS_NUT의 NAL Unit 다음에는 SPS_NUT 또는 PS_NUT의 NAL Unit이 올 수 있기 때문에 순서만으로 알기는 어렵고 RBSP의 값도 확인해야 한다. 이하 표 8 및 표 9를 참조하여 RBSP의 값과 NAL Unit 순서에 따라 NAL Unit Header의 변경 테이블을 추정하는 방법을 더욱 상세히 설명한다. Since the NAL unit of SPS_NUT or PS_NUT can come after the NAL unit of VPS_NUT, it is difficult to know only the order, and the value of RBSP must also be checked. Hereinafter, a method of estimating the change table of the NAL Unit Header according to the RBSP value and the NAL Unit order will be described in more detail with reference to Tables 8 and 9 below.
[표 8][Table 8]
표 8은 표 1에서 nal unit type이 33이여서, First Byte of NAL Unit Header가 0x42의 값을 가지는 SPS_NUT일 때 HEVC 표준문서에서 확인한 RBSP 신텍스의 일부이다. Table 8 is a part of the RBSP syntax confirmed in the HEVC standard document when the nal unit type is 33 in Table 1 and the First Byte of NAL Unit Header is SPS_NUT having a value of 0x42.
[표 9][Table 9]
표 9는 표 1에서 nal unit type이 34이여서, First Byte of NAL Unit Header가 0x44의 값을 가지는 PPS_NUT일 때 HEVC 표준문서에서 확인한 RBSP 신텍스의 일부이다. Table 9 is a part of the RBSP syntax confirmed in the HEVC standard document when the nal unit type is 34 in Table 1 and the First Byte of NAL Unit Header is PPS_NUT having a value of 0x44.
RBSP가 어떠한 값을 가지는지에 따라 VPS_NUT의 NAL Unit을 추정할 수 있으므로 표 3에서 VPS_NUT일 때 RBSP 신텍스를 이용하여 RBSP의 가장 처음 4비트인 vps_video_parameter_set_id를 읽어 저장해 두고, VPS_NUT 다음에 오는 NAL Unit의 RBSP의 가장 처음 4비트를 읽어 두 값을 한다. 두 값이 같으면 VPS_NUT 다음에 오는 NAL Unit은 SPS_NUT이여야 함을 알 수 있다. 표 8의 SPS_NUT일 때 RBSP 신텍스에서와 같이 sps_video_parameter_set_id는 표 3의 VPS_NUT일 때 RBSP 신텍스에서의 vps_video_parameter_set_id와 같은 값을 의미하기 때문이다. Since the NAL unit of VPS_NUT can be estimated according to the value of RBSP, in Table 3, when VPS_NUT is VPS_NUT, vps_video_parameter_set_id, which is the first 4 bits of RBSP, is read and stored using RBSP syntax, and the RBSP of the NAL unit following VPS_NUT is stored. Read the first 4 bits of , and do two values. If the two values are the same, it can be seen that the NAL unit following VPS_NUT must be SPS_NUT. This is because sps_video_parameter_set_id means the same value as vps_video_parameter_set_id in the RBSP syntax for VPS_NUT of Table 3 as in the RBSP syntax for SPS_NUT of Table 8.
또한, VPS_NUT일 때 RBSP의 가장 처음 4비트인 vps_video_parameter_set_id를 저장해 두고 VPS_NUT 다음에 오는 NAL Unit의 RBSP의 가장 처음 4비트를 읽어 두 값을 비교해 다르면 VPS_NUT 다음에 오는 NAL Unit은 PPS_NUT이여야 함을 알 수 있다. VPS_NUT 다음에 올 수 있는 PPS_NUT일 때는 표 9의 RBSP 신텍스에서와 같이 RBSP의 가장 처음으로 pps_pic_parameter_set_id가 오는데 이는 표 3의 VPS_NUT일 때 RBSP 신텍스에서의 vps_video_parameter_set_id와 다른 값을 의미하기 때문이다. Also, when VPS_NUT, the first 4 bits of RBSP, vps_video_parameter_set_id, are stored, and the first 4 bits of the RBSP of the NAL unit following VPS_NUT are read and the two values are compared. have. In the case of PPS_NUT that can come after VPS_NUT, as in the RBSP syntax of Table 9, pps_pic_parameter_set_id comes first of the RBSP.
이와 같은 방법으로 VPS_NUT 다음에 오는 NAL Unit이 SPS_NUT이라는 것을 알게 되면 SPS_NUT 다음에 오는 NAL Unit은 PPS_NUT이기 때문에 PPS_NUT에 대한 NAL Unit Header의 첫 번째 바이트 값을 알 수 있다. 따라서, 이와 같은 방법을 이용하여 RBSP의 값과 NAL Unit 순서에 따라 NAL Unit Header의 변경 테이블을 추정할 수 있다.In this way, if it is known that the NAL unit following VPS_NUT is SPS_NUT, since the NAL unit following SPS_NUT is PPS_NUT, the value of the first byte of the NAL Unit Header for PPS_NUT can be known. Therefore, using the above method, the change table of the NAL Unit Header can be estimated according to the RBSP value and the NAL Unit order.
또한, NAL Unit 순서와 RBSP의 값을 이용하여 NAL Unit Header의 첫 번째 바이트를 알아냄으로써, NAL Unit Header의 변경 테이블을 추정할 수 있다. 이하 표 10과 표 11을 참조하여 NAL Unit 순서와 RBSP의 값을 이용하여 NAL Unit Header의 변경 테이블을 추정하는 방법을 상세히 설명한다. In addition, by finding out the first byte of the NAL unit header using the NAL unit order and the RBSP value, the change table of the NAL unit header can be estimated. Hereinafter, with reference to Tables 10 and 11, a method of estimating the change table of the NAL unit header using the NAL unit order and the RBSP value will be described in detail.
[표 10][Table 10]
[표 11][Table 11]
표 10과 표 1에서 nal unit type이 39이여서, First Byte of NAL Unit Header가 0x4E의 값을 가지는 PREFIX_SEI_NUT일 때 HEVC 표준문서에서 확인한 RBSP 신텍스이며 payloadSize에 따라 RBSP의 크기를 알 수 있다.In Table 10 and Table 1, since the nal unit type is 39, when the First Byte of NAL Unit Header is PREFIX_SEI_NUT having a value of 0x4E, it is the RBSP syntax confirmed in the HEVC standard document, and the size of the RBSP can be known according to the payloadSize.
표 11은 표 1에서 nal unit type이 40이여서, First Byte of NAL Unit Header가 0x50의 값을 가지는 SUFFIX_SEI_NUT일 때 HEVC 표준문서에서 확인한 RBSP 신텍스이며 payloadSize에 따라 RBSP의 크기를 알 수 있다.Table 11 is the RBSP syntax confirmed in the HEVC standard document when the nal unit type is 40 in Table 1 and the First Byte of NAL Unit Header is SUFFIX_SEI_NUT having a value of 0x50, and the size of the RBSP can be known according to the payloadSize.
표 1의 NAL Unit들 중에서 PREFIX_SEI_NUT는 nal_unit_type이 0~9, 16~21의 값을 가지는 VCL NAL Unit 이전에 오며, SUFFIX_SEI_NUT는 VCL NAL Unit 이후에 오는 순서를 가진다. 그러므로 비트스트림 내에서 PPS_NUT 다음에 PREFIX_SEI_NUT가 오고 PREFIX_SEI_NUT 다음에는 VCL NAL Unit이 온다. Among the NAL Units in Table 1, PREFIX_SEI_NUT comes before VCL NAL Unit whose nal_unit_type has values of 0~9, 16~21, and SUFFIX_SEI_NUT comes after VCL NAL Unit. Therefore, PREFIX_SEI_NUT follows PPS_NUT in the bitstream, and VCL NAL Unit comes after PREFIX_SEI_NUT.
표 10과 표 11에 따르면 payloadSize에 따라 RBSP의 크기를 알 수 있으므로, PPS_NUT 다음에 오는 NAL Unit에서 payloadSize에 해당하는 값을 읽어 저장해 두고 payloadSize 크기 다음에 스타트코드가 오면 NAL Unit Header의 첫 번째 바이트는 0x4E의 PREFIX_SEI_NUT이어야 되는 것을 알 수 있다. According to Table 10 and Table 11, since the size of the RBSP can be known according to the payloadSize, the value corresponding to the payloadSize is read and stored in the NAL Unit following PPS_NUT. You can see that it should be PREFIX_SEI_NUT of 0x4E.
또한, VCL NAL Unit다음에 오는 NAL Unit에서 payloadSize에 해당하는 값을 읽어 저장해 두고 payloadSize 크기 다음에 스타트 코드가 오면 NAL Unit Header의 첫 번째 바이트는 0x50의 SUFFIX_SEI_NUT이여야 되는 것을 알 수 있다. 따라서 이와 같은 방식으로 NAL Unit 순서와 RBSP의 값을 이용하여 NAL Unit Header의 첫 번째 바이트를 알아냄으로써, NAL Unit Header의 변경 테이블을 추정할 수 있다.In addition, the value corresponding to payloadSize is read from the NAL Unit following the VCL NAL Unit and stored. If the start code comes after the payloadSize size, the first byte of the NAL Unit Header should be SUFFIX_SEI_NUT of 0x50. Accordingly, by finding out the first byte of the NAL unit header using the NAL unit order and the RBSP value in this way, the change table of the NAL unit header can be estimated.
또한, NAL Unit Header의 첫 번째 바이트를 변경했을 때 정상 재생 여부에 따라 NAL Unit Header의 첫 번째 바이트를 알아냄으로써, NAL Unit Header의 변경 테이블을 추정할 수 있다. 이하 후술하는 도 9를 참조하여 NAL Unit Header의 첫 번째 바이트를 변경하여 NAL Unit Header의 변경 테이블을 추정하는 방법을 상세히 설명한다. In addition, when the first byte of the NAL Unit Header is changed, the change table of the NAL Unit Header can be estimated by finding out the first byte of the NAL Unit Header according to whether or not it is reproduced normally. Hereinafter, a method of estimating the change table of the NAL unit header by changing the first byte of the NAL unit header will be described in detail with reference to FIG. 9 to be described later.
단계(S430)에서, 암호화된 비트스트림에 포함된 스타트 코드를 검색하고, 스타트 코드 이후에 존재하는 NAL Unit을 탐색할 수 있다. 단계(S440)에서, 복호화부(Descrambler, 230)는 단계(S460)에서 유추한 NAL Unit Header 변경 테이블을 이용하여 암호화된 NAL Unit Header의 첫 번째 바이트 값을 원래 값으로 복원하여 암호해독을 한다. In step S430, a start code included in the encrypted bitstream may be searched, and a NAL unit existing after the start code may be searched for. In step S440, the decrypter (Descrambler, 230) restores the first byte value of the encrypted NAL unit header to the original value using the NAL unit header change table inferred in step S460 to decrypt it.
단계(S450)에서는 암호화된 비트스트림에 포함된 모든 NAL Unit Header의 첫 번째 바이트가 원래의 값으로 복호화 되었는지를 확인하여, 모든 NAL Unit Header의 첫 번째 바이트가 원래의 값으로 복호화 되지 않은 경우, 단계(S430)을 다시 수행한다. 즉, 다시 스타트 코드를 검색하여 복호화 되지 않은 NAL Unit Header의 첫 번째 바이트를 원래의 값으로 복호화 한다. 모든 NAL Unit Header의 첫 번째 바이트가 원래의 값으로 복호화된 경우, 복호화 단계가 완료된다. In step S450, it is checked whether the first byte of all NAL unit headers included in the encrypted bitstream are decrypted to their original values. (S430) is performed again. That is, the first byte of the undecoded NAL Unit Header is decoded to the original value by searching for the start code again. When the first byte of all NAL Unit Header is decoded to the original value, the decoding step is completed.
이하, 도 9를 참조하여 실시예에 따른NAL Unit Header의 첫 번째 바이트를 변경하여 NAL Unit Header의 변경 테이블을 유추하는 방법을 설명한다. Hereinafter, a method of inferring a change table of the NAL Unit Header by changing the first byte of the NAL Unit Header according to an embodiment will be described with reference to FIG. 9 .
도 9는 실시예에 따른 NAL Unit Header의 바이트 값 변경에 따른 비디오 정상 재생 여부를 나타내는 도표이다.9 is a diagram illustrating whether video is normally reproduced according to a change in a byte value of a NAL unit header according to an embodiment.
도 9를 참조하면, HEX 값으로 표시한 세로 방향은 NAL Unit Header의 첫 번째 바이트의 변경 전 값이고, 가로 방향은 NAL Unit Header의 첫 번째 바이트의 변경 후 값이다. Referring to FIG. 9 , the vertical direction indicated by the HEX value is the value before the first byte of the NAL Unit Header is changed, and the horizontal direction is the value after the first byte of the NAL Unit Header is changed.
HEX값으로 표시한 세로 방향의 NAL Unit Heeader의 첫 번째 바이트를 가로 방향의 값들로 변경했을 때, 국제 표준의 HEVC 디코더로 적합한지를 인증하기 위해 공개된 conformance bitstream 중 146개의 비트스트림에 대해서 정상 재생 여부를 조사한 것이다. 세로 방향과 가로 방향의 HEX 값은 표 1의 ‘First Byte of NAL Unit Header’열의 값과 같으며, 세로 방향 Hex 값의 왼쪽 값은 표 1의 ‘Name of nal_unit_type’와 같다. When the first byte of the NAL Unit Header in the vertical direction expressed by the HEX value is changed to the values in the horizontal direction, whether 146 bitstreams among the conformance bitstreams disclosed to certify whether it is suitable for the international standard HEVC decoder are normally played will be investigated The vertical and horizontal HEX values are the same as the values in the ‘First Byte of NAL Unit Header’ column of Table 1, and the left value of the vertical Hex values is the same as the ‘Name of nal_unit_type’ in Table 1.
표 12의 ○, □, △, ×는 NAL Unit Header의 첫 번째 바이트를 변경했을 때 정상 재생 여부를 나타내는 것이다. ○로 표시된 경우의 예로는, 비트스트림 안에 NAL Unit Header들의 첫 번째 바이트가 세로 방향의 0x00일 때 가로 방향의 0x02로 변경했을 때이다. 이렇게 변경된 비트스트림을 HEVC 디코더를 통해 재생하면 정상 재생되어 ○로 표시하였다. ○, □, △, and × in Table 12 indicate whether the first byte of the NAL Unit Header is played normally. An example of the case indicated by ○ is when the first byte of NAL Unit Header in the bitstream is changed from 0x00 in the vertical direction to 0x02 in the horizontal direction. When the bitstream changed in this way is reproduced through the HEVC decoder, it is reproduced normally and marked with ○.
□로 표시된 경우의 예로는, 비트스트림 안에 NAL Unit Header들의 첫 번째 바이트가 세로 방향의 0x02일 때 가로 방향의 0x04로 변경했을 때이다. 이렇게 변경된 비트스트림을 HEVC 디코더를 통해 재생하면 146개의 비트스트림들이 대부분 정상 재생되지만 일부 소수의 비트스트림들은 비정상 재생되어 □로 표시된다.An example of the case indicated by □ is when the first byte of NAL Unit Header in the bitstream is changed from 0x02 in the vertical direction to 0x04 in the horizontal direction. When the changed bitstream is reproduced through the HEVC decoder, most of the 146 bitstreams are normally reproduced, but some bitstreams are reproduced abnormally and are indicated by □.
△로 표시된 경우의 예로는, 비트스트림 안에 NAL Unit Header들의 첫 번째 바이트가 세로 방향의 0x02일 때 가로 방향의 0x20로 변경했을 때이다. 이렇게 변경된 비트스트림을 HEVC 디코더를 통해 재생하면 비정상 재생되어 △로 표시된다. An example of the case indicated by △ is when the first byte of NAL Unit Header in the bitstream is changed from 0x02 in the vertical direction to 0x20 in the horizontal direction. When the changed bitstream is reproduced through the HEVC decoder, it is reproduced abnormally and is indicated by △.
×로 표시된 경우의 예로는 비트스트림 안에 NAL Unit Header들의 첫 번째 바이트가 세로 방향의 0x26일 때 가로 방향의 0x08로 변경했을 때이다. 이렇게 변경된 비트스트림을 HEVC 디코더를 통해 재생하면 재생 불가하여 × 로 표시된다. An example of the case marked with × is when the first byte of NAL Unit Header in the bitstream is changed to 0x08 in the horizontal direction from 0x26 in the vertical direction. If the bitstream thus changed is reproduced through the HEVC decoder, it cannot be reproduced and is displayed as ×.
S5 영역은 NAL Unit Header의 첫 번째 바이트가 원래 0x40~0x50인데 변경된 경우에는 상술한 NAL Unit Header의 변경 테이블을 추정하는 방법들을 이용하여 알아 낼 수 있다. 표 1에서와 같이 NAL Unit Header의 첫 번째 바이트가 될 수 있는 25가지 값들 중에서 0x40~0x50의 9가지에 대해 알아 낼 수 있으므로, 나머지 16가지 값들을 알아 내야 하는데S1영역, S2영역, S3영역 및 S4영역의 정상 재생 여부의 특징을 이용하면 5가지 값들을 찾아 내는 경우의 수로 줄일 수 있다. When the first byte of the NAL Unit Header is originally 0x40 to 0x50, the S5 region can be found by using the above-described methods for estimating the change table of the NAL Unit Header. As shown in Table 1, out of 25 values that can be the first byte of the NAL Unit Header, 9 of 0x40~0x50 can be found, so the remaining 16 values need to be found out. S1, S2, S3 and By using the characteristic of whether the S4 region is normally reproduced, the number of cases in which five values are found can be reduced.
S1영역의 NAL Unit Header의 첫 번째 바이트가 원래 0x00~0x12인데 변경된 경우에는 0x02, 0x06, 0x0A 중 하나의 값으로 되돌려 주면 ○로 표시된 바와 같이 정상 재생이 가능하다. 하지만, □으로 표시된 바와 같이 일부 비정상 재생되는 경우도 있으므로 0x02, 0x06, 0x0A 중 하나의 값으로 되돌려 준 다음 비정상 재생되는 NAL Unit의 경우 0x10, 0x12 중 하나의 값으로 되돌린다. If the first byte of the NAL Unit Header of the S1 area is originally 0x00~0x12, but it is changed, return it to one of 0x02, 0x06, and 0x0A to enable normal playback as indicated by ○. However, as indicated by □, there are some abnormal reproductions, so it returns one of 0x02, 0x06, and 0x0A.
S2영역의 NAL Unit Header의 첫 번째 바이트가 원래 0x20~0x24인데 변경된 경우에는 0x20~0x24 중 하나의 값으로 되돌려 주면 ○로 표시된 바와 같이 정상 재생이 가능하다.If the first byte of the NAL Unit Header of the S2 area is originally 0x20~0x24, but it is changed, return it to one of 0x20~0x24 to enable normal playback as indicated by ○.
S3영역의 NAL Unit Header의 첫 번째 바이트가 원래 0x26~0x28인데 변경된 경우에는 0x26~0x28 중 하나의 값으로 되돌려 주면 ○로 표시된 바와 같이 정상 재생이 가능하다.If the first byte of the NAL Unit Header of the S3 area is originally 0x26~0x28, but if it is changed, return it to one of 0x26~0x28 to enable normal playback as indicated by ○.
이와 같은 재생 여부의 특징을 이용해 위의 NAL Unit Header의 변경 테이블을 추정하는 방법들을 이용하여 알아 낼 수 없었던 뒤섞여진 16가지 NAL Unit Header의 첫 번째 바이트들을 아래와 같이 다섯 과정을 거쳐 정상 재생 가능하도록 할 수 있다.The first bytes of the 16 kinds of mixed NAL Unit Header that could not be found by using the above method of estimating the change table of the NAL Unit Header using the characteristics of the reproduction or not can be reproduced normally through the following five processes. can
먼저, 제1 단계로, 뒤섞인 16가지 NAL Unit Header의 첫 번째 바이트들을 S3영역의 0x26~0x28 중 하나의 값으로 모두 변경해서 재생 여부를 확인한다. First, as a first step, the first bytes of the 16 kinds of mixed NAL Unit Header are all changed to one of 0x26 ~ 0x28 of the S3 area to check whether or not to be reproduced.
제2 단계로. 제1 단계 이후에 비정상 재생되는 NAL Unit Header의 첫 번째 바이트들을 S1영역의 0x02, 0x06, 0x0A 중 하나의 값으로 모두 변경해서 재생 여부를 확인한다.to the second step. After the first step, the first bytes of the NAL Unit Header, which are abnormally reproduced, are all changed to one of 0x02, 0x06, and 0x0A in the S1 area to check whether or not to be reproduced.
제3 단계로, 제2 단계 이후에 비정상 재생되는 NAL Unit Header의 첫 번째 바이트들을 S4영역의 0x2A로 모두 변경해서 재생 여부를 확인한다. In the third step, the first bytes of the NAL Unit Header, which are abnormally reproduced after the second step, are all changed to 0x2A of the S4 area to check whether the reproduction is performed.
제4 단계로, 제3 단계 이후에 비정상 재생되는 NAL Unit Header의 첫 번째 바이트들을 S2영역의 0x20~0x24 중 하나의 값으로 모두 변경해서 재생 여부를 확인한다.In the fourth step, the first bytes of the NAL Unit Header, which are abnormally reproduced after the third step, are all changed to one of 0x20 to 0x24 in the S2 area to check whether or not to be reproduced.
제5 단계로, 제4 단계 이후에 비정상 재생되는 NAL Unit Header의 첫 번째 바이트들을 S1영역의 0x10, 0x12 중 하나의 값으로 모두 변경해서 재생 여부를 확인한다. 따라서 이와 같은 방식으로 NAL Unit Header의 첫 번째 바이트를 변경하여 NAL Unit Header의 변경 테이블을 유추할 수 있다. In the fifth step, the first bytes of the NAL Unit Header, which are abnormally reproduced after the fourth step, are all changed to one of 0x10 and 0x12 in the S1 area to check whether or not to be reproduced. Therefore, the change table of the NAL Unit Header can be inferred by changing the first byte of the NAL Unit Header in this way.
따라서 복호화부(Descrambler, 230)는 NAL Unit Header의 변경 테이블을 알 수 없는 경우 상술한 NAL Unit Header의 변경 테이블 유추 방법들을 개별적 또는 복합적으로 사용하여 NAL Unit Header의 변경 테이블을 유추하여 비디오 복호화를 수행할 수 있다. Therefore, when the change table of the NAL unit header is not known, the decoder (Descrambler, 230) performs video decoding by inferring the change table of the NAL unit header by individually or in combination using the above-described change table inference methods of the NAL unit header. can do.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 안되며 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.Although the embodiments of the present invention have been described in detail above, the scope of the present invention is not limited thereto. is within the scope of the right. Accordingly, the foregoing detailed description should not be construed as restrictive in all respects but as illustrative. The scope of the present invention should be determined by a reasonable interpretation of the appended claims, and all modifications within the equivalent scope of the present invention are included in the scope of the present invention.
110: 인코더 200: Encryptor
130: 네트워크 140: Decryptor
150: 디코더 210: 암호화부
220: 통신부 230: 복호화부110: Encoder 200: Encryptor
130: Network 140: Decryptor
150: decoder 210: encryption unit
220: communication unit 230: decoding unit
Claims (18)
상기 암호화된 영상에 대응하는 암호화된 비트스트림(bitstream)을 수신하는 단계 - 상기 암호화된 비트스트림은 복수의 스타트 코드(Start code)와 복수의 NAL Unit을 포함하며, 상기 NAL Unit(Network Abstraction Layer Unit)은 암호화된 NAL Unit Header와 RBSP(Raw Byte Sequence Payload)로 구성됨 -,
상기 암호화된 비트스트림에서 스타트 코드를 검색하는 단계,
상기 검색된 스타트 코드 이후의 NAL Unit을 검색하는 단계,
변경 테이블에 따라, 상기 암호화된 NAL Unit Header를 복호화하여 복호화된 비트스트림을 생성하는 단계, 그리고
디코더(Decoder)가 상기 복호화된 비트스트림을 이용하여 비디오 데이터를 복원하는 단계
를 포함하고
상기 변경 테이블은 상기 암호화된 NAL Unit Header의 첫 번째 바이트 값에 대한 변경 테이블이고,
상기 암호화된 영상은 HEVC 코덱을 이용하여 생성되며,
상기 비디오 데이터를 복원하는 단계는,
상기 HEVC 코덱을 이용하여 상기 복호화된 비트스트림을 비디오 데이터로 복원하는 단계를 포함하되,
상기 복호화된 비트스트림을 생성하는 단계는,
상기 암호화된 NAL Unit Header와 RBSP의 바이트 값을 HEVC 표준과 비교하여, 상기 변경 테이블을 유추하는 단계, 그리고
상기 유추된 변경 테이블에 따라, 상기 암호화된 NAL Unit Header를 복호화 하여 복호화된 비트스트림을 생성하는 단계를 포함하는, 영상 복호화 방법.As a method of decrypting an encrypted image,
Receiving an encrypted bitstream corresponding to the encrypted image - The encrypted bitstream includes a plurality of start codes and a plurality of NAL units, and the NAL Unit (Network Abstraction Layer Unit) ) is composed of encrypted NAL Unit Header and RBSP (Raw Byte Sequence Payload) -,
retrieving a start code from the encrypted bitstream;
searching for a NAL unit after the searched start code;
Decrypting the encrypted NAL Unit Header according to the change table to generate a decrypted bitstream, and
reconstructing video data using the decoded bitstream by a decoder
includes
The change table is a change table for the first byte value of the encrypted NAL Unit Header,
The encrypted image is generated using the HEVC codec,
Restoring the video data includes:
Restoring the decoded bitstream to video data using the HEVC codec,
The step of generating the decoded bitstream comprises:
Inferring the change table by comparing the encrypted NAL Unit Header and the byte value of the RBSP with the HEVC standard, and
and generating a decrypted bitstream by decrypting the encrypted NAL unit header according to the inferred change table.
상기 복호화된 비트스트림을 생성하는 단계는,
상기 RBSP의 바이트 크기와 HEVC 표준을 비교하여 상기 변경 테이블을 유추하는 단계, 그리고
상기 유추된 변경 테이블에 따라, 상기 암호화된 NAL Unit Header를 복호화 하여 복호화된 비트스트림을 생성하는 단계
를 포함하는, 영상 복호화 방법.5. The method of claim 4,
The step of generating the decoded bitstream comprises:
Inferring the change table by comparing the byte size of the RBSP with the HEVC standard, and
Decrypting the encrypted NAL Unit Header according to the inferred change table to generate a decrypted bitstream
Including, video decoding method.
상기 복호화된 비트스트림을 생성하는 단계는,
상기 RBSP의 값과 NAL Unit 순서를 HEVC 표준과 비교하여 상기 변경 테이블을 유추하는 단계, 그리고
상기 유추된 변경 테이블에 따라, 상기 암호화된 NAL Unit Header를 복호화 하여 복호화된 비트스트림을 생성하는 단계
를 포함하는, 영상 복호화 방법.5. The method of claim 4,
The step of generating the decoded bitstream comprises:
Inferring the change table by comparing the value of the RBSP and the NAL Unit order with the HEVC standard, and
Decrypting the encrypted NAL Unit Header according to the inferred change table to generate a decrypted bitstream
Including, video decoding method.
상기 복호화된 비트스트림을 생성하는 단계는,
상기 암호화된 NAL Unit Header를 임의의 값으로 변경하고, 변경된 값에 따른 비디오 데이터 복원 성공 여부를 판단하는 단계,
상기 암호화된 NAL Unit Header의 변경값에 따른 비디오 데이터 복원 성공 여부를 저장하는 단계,
상기 변경값에 따른 비디오 데이터 복원 성공 여부에 따라 상기 변경 테이블을 유추하는 단계, 그리고
상기 유추된 변경 테이블에 따라, 상기 암호화된 NAL Unit Header를 복호화 하여 복호화된 비트스트림을 생성하는 단계
를 포함하는, 영상 복호화 방법.5. The method of claim 4,
The step of generating the decoded bitstream comprises:
Changing the encrypted NAL Unit Header to an arbitrary value and determining whether video data restoration is successful according to the changed value;
Storing the success or failure of video data restoration according to the change value of the encrypted NAL Unit Header;
inferring the change table according to whether video data restoration is successful according to the change value; and
Decrypting the encrypted NAL Unit Header according to the inferred change table to generate a decrypted bitstream
Including, video decoding method.
상기 암호화된 영상에 대응하는 암호화된 비트스트림(bitstream)을 수신하는 통신부 - 상기 암호화된 비트스트림은 복수의 스타트 코드(Start code)와 복수의 NAL Unit을 포함하며, 상기 NAL Unit(Network Abstraction Layer Unit)은 암호화된 NAL Unit Header와 RBSP(Raw Byte Sequence Payload)로 구성됨 -,
상기 암호화된 비트스트림에서 스타트 코드를 검색하고, 상기 검색된 스타트 코드 이후의 NAL Unit을 검색하며, 변경 테이블에 따라, 상기 암호화된 NAL Unit Header를 복호화하여 복호화된 비트스트림을 생성하는 복호화부, 그리고
상기 복호화된 비트스트림을 이용하여 비디오 데이터를 복원하는 디코더(Decoder)
를 포함하고
상기 변경 테이블은 상기 암호화된 NAL Unit Header의 첫 번째 바이트 값에 대한 변경 테이블이고,
상기 암호화된 영상은 HEVC 코덱을 이용하여 생성되며,
상기 디코더는,
상기 HEVC 코덱을 이용하여 상기 복호화된 비트스트림을 비디오 데이터로 복원하되,
상기 복호화부는,
상기 암호화된 NAL Unit Header와 RBSP의 바이트 값을 HEVC 표준과 비교하여, 상기 변경 테이블을 유추하고,
상기 유추된 변경 테이블에 따라, 상기 암호화된 NAL Unit Header를 복호화하여 복호화된 비트스트림을 생성하는, 영상 복호화 장치.As a device for decrypting encrypted images,
Communication unit for receiving an encrypted bitstream corresponding to the encrypted image - The encrypted bitstream includes a plurality of start codes and a plurality of NAL units, and the NAL Unit (Network Abstraction Layer Unit) ) is composed of encrypted NAL Unit Header and RBSP (Raw Byte Sequence Payload) -,
A decryption unit that searches for a start code in the encrypted bitstream, searches for a NAL unit after the searched start code, and decrypts the encrypted NAL unit header according to a change table to generate a decrypted bitstream, and
A decoder for reconstructing video data using the decoded bitstream
includes
The change table is a change table for the first byte value of the encrypted NAL Unit Header,
The encrypted image is generated using the HEVC codec,
The decoder is
Restoring the decoded bitstream to video data using the HEVC codec,
The decryption unit,
Infer the change table by comparing the encrypted NAL Unit Header and the byte value of the RBSP with the HEVC standard,
Decrypting the encrypted NAL unit header according to the inferred change table to generate a decrypted bitstream.
상기 복호화부는,
상기 RBSP의 바이트 크기와 HEVC 표준을 비교하여 상기 변경 테이블을 유추하고,
상기 유추된 변경 테이블에 따라, 상기 암호화된 NAL Unit Header를 복호화하여 복호화된 비트스트림을 생성하는, 영상 복호화 장치.14. The method of claim 13,
The decryption unit,
Infer the change table by comparing the byte size of the RBSP with the HEVC standard,
Decrypting the encrypted NAL unit header according to the inferred change table to generate a decrypted bitstream.
상기 복호화부는,
상기 RBSP의 값과 NAL Unit 순서를 HEVC 표준과 비교하여 상기 변경 테이블을 유추하고,
상기 유추된 변경 테이블에 따라, 상기 암호화된 NAL Unit Header를 복호화하여 복호화된 비트스트림을 생성하는, 영상 복호화 장치.14. The method of claim 13,
The decryption unit,
Infer the change table by comparing the RBSP value and the NAL unit order with the HEVC standard,
Decrypting the encrypted NAL unit header according to the inferred change table to generate a decrypted bitstream.
상기 복호화부는,
상기 암호화된 NAL Unit Header를 임의의 값으로 변경하고, 변경된 값에 따른 비디오 데이터 복원 성공 여부를 판단하고,
상기 암호화된 NAL Unit Header의 변경값에 따른 비디오 데이터 복원 성공 여부를 저장하며,
상기 변경값에 따른 비디오 데이터 복원 성공 여부에 따라 상기 변경 테이블을 유추하고,
상기 유추된 변경 테이블에 따라, 상기 암호화된 NAL Unit Header를 복호화하여 복호화된 비트스트림을 생성하는, 영상 복호화 장치.14. The method of claim 13,
The decryption unit,
Change the encrypted NAL Unit Header to an arbitrary value, determine whether video data restoration is successful according to the changed value,
Storing the success or failure of video data restoration according to the change value of the encrypted NAL Unit Header,
Inferring the change table according to the success or failure of video data restoration according to the change value;
Decrypting the encrypted NAL unit header according to the inferred change table to generate a decrypted bitstream.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200060482A KR102348633B1 (en) | 2020-05-20 | 2020-05-20 | Video encryption and decryption method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200060482A KR102348633B1 (en) | 2020-05-20 | 2020-05-20 | Video encryption and decryption method and apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210143553A KR20210143553A (en) | 2021-11-29 |
KR102348633B1 true KR102348633B1 (en) | 2022-01-11 |
Family
ID=78698042
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200060482A KR102348633B1 (en) | 2020-05-20 | 2020-05-20 | Video encryption and decryption method and apparatus |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102348633B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116347090B (en) * | 2023-05-26 | 2023-08-11 | 深圳市科盾科技有限公司 | Network information encryption method in big data environment |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008005323A (en) | 2006-06-23 | 2008-01-10 | Nippon Hoso Kyokai <Nhk> | Encrypted content preparation device, its method, its program and content decoding device, its method, and its program |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060165232A1 (en) * | 2002-12-16 | 2006-07-27 | Dzevdet Burazerovic | Method and apparatus to encrypt video data streams |
KR100724825B1 (en) * | 2005-11-17 | 2007-06-04 | 삼성전자주식회사 | A Methodology and System for Scalable Video Bitstream Encryption and Decryption to Scalable Conditional Access Control according to Multi-dimensionalScalability in Scalable Video Coding |
KR101145782B1 (en) * | 2010-10-11 | 2012-05-16 | 경희대학교 산학협력단 | Method for lightweight video contents encryption and decryption to provide mobile contents service |
US9723321B2 (en) * | 2012-10-08 | 2017-08-01 | Samsung Electronics Co., Ltd. | Method and apparatus for coding video stream according to inter-layer prediction of multi-view video, and method and apparatus for decoding video stream according to inter-layer prediction of multi view video |
KR101528273B1 (en) * | 2013-05-10 | 2015-06-12 | 황선철 | Method of encoding and decoding bytestream with nal structure |
EP3338451A1 (en) * | 2015-09-23 | 2018-06-27 | ARRIS Enterprises LLC | Single layer high dynamic range coding with standard dynamic range backward compatibility |
-
2020
- 2020-05-20 KR KR1020200060482A patent/KR102348633B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008005323A (en) | 2006-06-23 | 2008-01-10 | Nippon Hoso Kyokai <Nhk> | Encrypted content preparation device, its method, its program and content decoding device, its method, and its program |
Also Published As
Publication number | Publication date |
---|---|
KR20210143553A (en) | 2021-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6996717B2 (en) | Semi-fragile watermarking system for MPEG video authentication | |
US7457415B2 (en) | Secure information distribution system utilizing information segment scrambling | |
JP5379129B2 (en) | Selective encryption for trick play with improved security | |
US8509434B2 (en) | Method and apparatus for protecting scalable video coding contents | |
US11611808B2 (en) | Systems and methods of preparing multiple video streams for assembly with digital watermarking | |
JP4812117B2 (en) | Content encryption apparatus and program thereof, and content decryption apparatus and program thereof | |
US20060031558A1 (en) | Method and system for delivering media data | |
US20140105392A1 (en) | Method for selectively scrambling bit-streams | |
US8472625B2 (en) | Method and system for protecting 3D video content | |
KR102348633B1 (en) | Video encryption and decryption method and apparatus | |
Iqbal et al. | Compressed-domain video processing for adaptation, encryption, and authentication | |
KR100840200B1 (en) | Apparatus and method of packaging/unpackaging h.264 movie file streamed or downloaded | |
CN109743627B (en) | Playing method of digital movie package based on AVS + video coding | |
US11134307B2 (en) | Image processing apparatus and control method thereof | |
KR20220036916A (en) | How to watermark a video fragment with 2 or more variants | |
US10958989B2 (en) | Framework for embedding data in encoded video | |
CN109561345B (en) | Digital movie packaging method based on AVS + coding format | |
JP2011061281A (en) | Media file restoration method, media file preparing method, and media file reproducing method and device | |
JPH10304324A (en) | Information receiver and information imbedding processing method applied to the receiver | |
WO2005018234A1 (en) | Method and system for delivering media data | |
WO2004112395A1 (en) | Device and method in a multimedia broadcast system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |