CN106254896A - 一种针对实时视频的分布式加密方法 - Google Patents
一种针对实时视频的分布式加密方法 Download PDFInfo
- Publication number
- CN106254896A CN106254896A CN201610638115.2A CN201610638115A CN106254896A CN 106254896 A CN106254896 A CN 106254896A CN 201610638115 A CN201610638115 A CN 201610638115A CN 106254896 A CN106254896 A CN 106254896A
- Authority
- CN
- China
- Prior art keywords
- data
- video
- content
- video slicing
- time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 88
- 238000009826 distribution Methods 0.000 claims abstract description 42
- 230000008569 process Effects 0.000 claims description 31
- 230000005540 biological transmission Effects 0.000 claims description 25
- 238000005538 encapsulation Methods 0.000 claims description 2
- 238000004064 recycling Methods 0.000 claims description 2
- 230000000875 corresponding effect Effects 0.000 description 14
- 238000012545 processing Methods 0.000 description 14
- 238000003860 storage Methods 0.000 description 6
- 239000012634 fragment Substances 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000005520 cutting process Methods 0.000 description 3
- 238000013480 data collection Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000002195 synergetic effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 206010008190 Cerebrovascular accident Diseases 0.000 description 1
- 208000006011 Stroke Diseases 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000007630 basic procedure Methods 0.000 description 1
- 238000010923 batch production Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 239000011248 coating agent Substances 0.000 description 1
- 238000000576 coating method Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000005243 fluidization Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000035800 maturation Effects 0.000 description 1
- 230000001681 protective effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
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
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- 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/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/61—Network physical structure; Signal processing
- H04N21/6106—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
- H04N21/6125—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet
-
- 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/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种针对实时视频的分布式加密方法,利用实时计算框架接收实时视频流数据;将所述实时视频流数据以时间为基准分割成视频分片数据,每一个时间分片对应一个视频分片数据;根据所述视频分片数据构建弹性分布式数据集,所述弹性分布式数据集中的每个元素为一个所述视频分片数据;将所述弹性分布式数据集中的各个元素分发给各个节点工作站;所述节点工作站对所述视频分片数据进行加密处理并输出加密结果。根据本发明的方法,可以快速的对实时视频进行分布式加密;相较于现有技术,本发明的方法过程简单,操作实现难度低,具有良好的加密效果。
Description
技术领域
本发明涉及传媒领域,具体说涉及一种针对实时视频的分布式加密方法。
背景技术
在计算机数据处理应用中,视频加密是一种较常见的数据处理应用。由于视频数据的数据量较大,通常视频加密操作需要消耗大量的计算资源。
随着分布式系统技术的不断发展,愈来愈多的技术领域利用分布式数据处理技术来降低单台处理系统的数据处理压力。分布式数据处理技术也被应用到视频加密领域。
在现有技术中,通常使用原生并行计算框架(映射-归约MapReduce)对视频进行分布式加密。利用MapReduce进行视频加密,在MapReduce任务内部,为了防止归约(Reduce)任务的失败,映射(Map)通常会把结果存储在磁盘上。通常一些查询在翻译到MapReduce任务的时候,往往会产生多个阶段(stage),而这些串联的stage则又依赖于底层文件系统(如分布式文件系统HDFS)来存储每一个stage的输出结果。冗余的磁盘读写开销和多次资源申请过程,使得基于MapReduce的算法实现存在严重的性能问题。同时,Reduce任务需要等待所有Map任务都完成后才可以开始,也造成了较大程度的时间开销。
由于性能和处理速度上的制约,基于磁盘读写机制的MapReduce框架先天上不具备实时性较强的处理能力。进一步的,MapReduce框架主要用于大规模的批处理运算,对于实时性要求较强的流式处理,没有提供针对流式处理的数据接收接口。上述问题最终导致利用MapReduce框架不能很好的处理实时任务,严重限制了分布式加密方法的应用范围。
因此,为了进一步提高分布式加密系统的性能,提高系统对实时任务的处理能力,需要一种针对实时视频的分布式加密方法。
发明内容
本发明提供了一种针对实时视频的分布式加密方法,所述方法包括:
利用实时计算框架接收实时视频流数据;
将所述实时视频流数据以时间为基准分割成视频分片数据,每一个时间分片对应一个视频分片数据;
根据所述视频分片数据构建弹性分布式数据集,所述弹性分布式数据集中的每个元素为一个所述视频分片数据;
将所述弹性分布式数据集中的各个元素分发给各个节点工作站;
所述节点工作站对所述视频分片数据进行加密处理并输出加密结果。
在一实施例中,根据所述视频分片数据构建弹性分布式数据集,其中,按照预设的时间间隔生成所述弹性分布式数据集,所述弹性分布式数据集对应所述时间间隔内接收到的所有视频分片数据。
在一实施例中,根据所述视频分片数据构建弹性分布式数据集,其中,构建所述弹性分布式数据集后将所述弹性分布式数据集转化为键值对的形式。
在一实施例中,将所述弹性分布式数据集中的各个元素分发给各个节点工作站,其中,利用命名管道进行与所述节点工作站的数据传输。
在一实施例中,在数据传输之前,创建一对命名管道分别为为输入管道和输出管道,其中:
所述输入管道用来传递程序侧到加密侧的数据;
所述输出管道用来传递加密后的数据到程序侧。
在一实施例中,在进行数据传输的过程中采用数据长度校验,其中:
在写入内容到所述命名管道之前,首先将要写入内容的内容长度先写入所述命名管道,然后写入要写入的内容;
读取内容时先读取出所述命名管道中内容的长度,然后依照内容的长度读取内容。
在一实施例中,所述视频分片数据以及所述加密结果的封装格式为“包头+内容”,其中:
所述包头包含视频分片的标识符,用于描述所述视频分片的基本信息;
所述内容包含视频分片的流媒体内容。
在一实施例中,所述节点工作站对所述视频分片数据进行加密处理,密钥包含业务密钥以及加密密钥,其中:
在加密过程中,先利用所述加密密钥对所述内容进行加密,再利用所述业务密钥对所述加密密钥的控制字进行加密;
在解密过程中,先利用与所述业务密钥对应的解密密钥解密所述加密密钥的控制字,再利用所述加密密钥的控制字解密所述内容。
在一实施例中,所述视频分片数据与所述加密密钥一一对应,不同的所述视频分片数据采用不同的加密密钥。
在一实施例中,从属于同一视频的不同所述视频分片数据对应同一所述业务密钥。
根据本发明的方法,可以快速的对实时视频进行分布式加密;相较于现有技术,本发明的方法过程简单,操作实现难度低,具有良好的加密效果。
本发明的其它特征或优点将在随后的说明书中阐述。并且,本发明的部分特征或优点将通过说明书而变得显而易见,或者通过实施本发明而被了解。本发明的目的和部分优点可通过在说明书、权利要求书以及附图中所特别指出的步骤来实现或获得。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例共同用于解释本发明,并不构成对本发明的限制。在附图中:
图1是根据本发明一实施例的方法流程图;
图2和图3分别是根据本发明不同实施例的系统结构简图;
图4是根据本发明一实施例的数据传输流程图;
图5是根据本发明一实施例的密钥分发系统结构简图。
具体实施方式
以下将结合附图及实施例来详细说明本发明的实施方式,借此本发明的实施人员可以充分理解本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程并依据上述实现过程具体实施本发明。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。
在视频业务形态中,最常见的主要有两种:直播(实时视频)和点播(离线视频),两种业务形态视频的存在方式不同造成了对视频加密的需求也不相同。直播业务对视频加密的实时性是首要考虑的,而在点播类业务中较高效率的处理大数据的能力是其核心要考虑的问题。
在现有技术中,由于性能和处理速度上的制约,基于磁盘读写机制的MapReduce框架先天上不具备实时性较强的处理能力。进一步的,MapReduce框架主要用于大规模的批处理运算,对于实时性要求较强的流式处理,没有提供针对流式处理的数据接收接口。上述问题最终导致利用MapReduce框架不能很好的处理实时任务,严重限制了分布式加密方法的应用范围。
为了进一步提高分布式加密系统的性能,提高系统对实时任务的处理能力,本发明提出了一种针对实时视频的分布式加密方法。根据本发明的方法,针对实时视频源进行了系统优化,使得系统具备了对实时流媒体的加密功能。
接下来基于附图描述根据本发明具体实施例的方法的执行过程,附图的流程图中示出的步骤可以在包含诸如一组计算机可执行指令的计算机系统中执行。虽然在流程图中示出了各步骤的逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
如图1所示,本发明的方法的主要步骤包括:
接收实时视频流数据(S100)
将视频流数据分割以生成视频分片数据(S110);
根据视频分片数据构建弹性分布式数据集(S120),弹性分布式数据集中的每个元素为一个视频分片数据;
将弹性分布式数据集中的各个元素分发给各个节点工作站(S130);
节点工作站对视频分片数据进行加密处理并输出加密结果(S140)。
当用户需要播放视频时,可以按照视频分片在完整视频中的时间先后顺序一边解密一边播放;也可以将所有的视频分片数据解密后统合成完整的视频数据再播放。
进一步的,为了便于用户播放视频,在根据本发明一实施例中,在步骤S140之后,对加密后的视频分片数据进行统一整理。将加密后的视频分片数据保存到存储服务器以便之后视频下载到客户端播放或者将加密后的视频单元传输给分发网络进行内容的分发。在本发明一实施例中,采用分布式文件系统保存加密后的视频分片数据。
另外,在根据本发明另一实施例中,也可以不保存加密后的视频分片数据。而是在视频分片数据被加密后直接发送到客户端播放或者传输给分发网络进行内容的分发。
由于实时业务的要求,以效率作为优先,最优的解决办法之一是减少在整个加密集群中的存储和读取的环节。为了减少存储和读取的环节,在本发明一实施例中,主要基于通用并行框架(Spark)构造任务分发系统,利用Spark基于内存的协同算法,最优化各个代理节点的协同工作效率。本说明书中的其他具体实施例也是基于Spark框架构造。在这里需要指出的是,本发明的具体实现方式并不限于Spark框架。本领域的技术人员可以采用其他框架构造任务分发系统。
在本发明一实施例中,基于Spark的分布式加密系统结构如图2所示。系统主要包括以下四个部分:视频分片模块210、分片分发模块220、加密模块以及视频分片整理模块240。在这里,为便于描绘,仅描绘分别构造在工作节点201、202、203、204上的加密模块231、232、233、234这4个加密模块。在实际运行中,加密模块的数量并不限于4个。
视频分片模块210任务是将来自实时视频源200的整个的视频文件切割成较小的视频单元,便于后续的任务处理和传输;分片分发模块220任务是将任务单元分发到各个工作节点上的加密模块执行;加密模块部署在工作节点上,任务是对分发到节点的视频单元进行加密,输出加密后的视频分片;视频分片整理模块240的任务是接收并整理加密后的视频分片数据。
在一实施例中,视频分片整理模块240将整理后的视频分片数据保存到存储服务器(分布式文件系统)。在另一实施例中,视频分片整理模块240直接将视频分片输出给用户或分发网络进行内容的分发。
根据本发明的方法,在最初分割视频生成视频分片数据后就确定了需要分发的加密任务数目(一个视频分片数据对应一个加密任务)。使得任务的分发以及节点工作站的调配更加简单,大大提高了加密操作的执行效率。由于避免了不必要的磁盘读写开销和多次资源申请过程,降低了整个加密操作的计算需求,缩短了加密操作的执行时间。
进一步的,分布式文件系统HDFS的数据块默认是64M,若一个文件大于64M,通过将大文件分解得到若干个数据块;若一个文件小于64M,则按它的实际大小组块存储。海量的小文件需要主节点存储较多的元数据信息记录块的位置。如果访问大量小文件,需要不断的从一个子节点跳到另一个子节点,严重影响性能。
在现有技术中,当视频文件分片尺寸在64MB时,MapReduce分布式视频加密的性能达到最优,当视频分片尺寸过大或过小时,加密性能大大降低。如果分片太大以至于一个分片要跨越多个HDFS块,则一个Map任务必须要由多个块通过网络传输,读写开销和网络传输开销大大增加。因此,在现有技术中,为了保证处理性能,视频分片大小的上限是HDFS块的大小。
根据本发明的方法,对视频分片尺寸不敏感,能够适应不同分片尺寸的加密需求。因此相较于现有技术,本发明的加密方法的应用灵活度大大增强。
进一步的,在实时业务的内容保护框架中,实时性是作为内容加密的首要考量,吞吐量的需求并不作为加密的首要考量因素。因此,在本发明一实施例中,在将视频分割成视频分片数据的过程中,直接接收实时流媒体,在接收的同时对实时流媒体进行以时间为基准的切分,每一个时间分片对应一个视频分片数据。然后根据视频分片数据构建弹性分布式数据集,其中,按照预设的时间间隔生成弹性分布式数据集,弹性分布式数据集对应时间间隔内接收到的所有视频分片数据。
为了实现实时视频数据的接收以及以时间为基准的视频分片,在本发明一实施例中,采用了实时计算(Streaming)框架。基于Streaming的加密框架如图3所示。基于实时视频的内容保护系统主要由四部分构成,流媒体接收分片模块330(Streaming框架)、分布式计算框架310(Master)、选择性加密模块(节点工作站321、322、323以及324,Worker)以及存储服务器350。
进一步的,在本发明一实施例中,利用Streaming框架配合Spark框架完成加密批处理。在接收实时流的时候,采用Streaming提供的接口监听端口处传来的数据,避免了与HDFS交互的I/O环节产生较多的时间消耗。具体的,选择Spark的针对流式处理的Sparkstreaming框架作为构建实时流分布式数据集的框架。Spark Streaming是一种构建在Spark上的实时计算框架,它扩展了Spark处理大规模流式数据的能力。相较现有技术的框架结构,Spark streaming框架具备更好的流处理能力。
在本发明一实施例中,Spark streaming框架下,实时业务的分布式加密流程如下:
(1)实例化StreamingContext并且指定好分片的切分时间。
(2)创建ImageReceiver类,继承自Receiver类,重新定义了Receiver方法,可以按照指定端口获取数据构建DStream。
(3)利用Spark streaming对实时流媒体进行以时间为基准的切分,SparkStreaming将DStream操作构建DStream Graph,然后每一个时间分片都会依照DStream Graph形成RDD Graph。JobGenerator内部有个定时器,定期生成Job,通过DStream的id,把ReceiverTracker接收到的Block信息从BlockManager上抓取下来进行处理,这个间隔时间是实例化StreamingContext的时候传进去的时间。
(4)如同离线的分布式架构一样,DStream也需要转换为键值对的形式,需要调用DStream的map方法完成键值对的转换。
(5)转换完成后,每一个视频分片作为一个任务实时的交由Spark核心进行批处理。
(6)Spark中的Master通过基于共享内存的代理节点协同算法,将分布式数据集中的各个元素根据节点性能和使用情况分发给各个节点Worker进行数据处理,视频分片的加密处理在Worker中完成。视频分片的加密处理同样由在Worker中的Executor上完成。
(7)加密完成后,各Worker将加密后的元素返回到Master中,并保存在HDFS中。
(8)HDFS中保存的加密分片通过流化模块把分片文件整合成流媒体文件输出。
Streaming支持Socket套接字进行数据传输,TCP连接和UDP连接分别应对两种处理情况。若服务器策发送到Streaming接收端的是视频分片的形式,则采用TCP的方式先建立链接然后接收数据的方式。实时流本身传输的过程中采用UDP的面向无连接的方式来保证业务的实时性。若服务器发送的是UDP的视频流,则采用的是UDP的连接方式,直接获取数据进行处理。两种连接方式各有自己的应用场景,TCP连接保证了数据传输和网络链接的安全性,但是实时性很难保证,适用于与连续小文件的传输。UDP在实时性方面能够取得良好的表现,但是视频传输难免出现丢包和误码,数据传输的安全性和准确率方面不如TCP连接方式。
在UDP连接方式的Streaming处理中,自定义了ImageReceiver类用来接收UDP连接方式传输来的数据。ImageReceiver继承自Streaming的Receiver类,Receiver类任务是将接收自网络的数据转化为可供Spark处理的RDD。Receiver类中提供了初始化端口、地址、接收方式、存储方式和资源释放的支持,通过onStart和onStop方法完成数据的接收和停止,但是onStart和onStop方法需要在子类ImageReceiver中按需完成定义。在onStart方法中,定义receive方法用来实现对UDP连接的数据接收。receive方法中流程是:通过DatagramSocket类创建UDP的Socket实例,DatagramPacket类接收报文,并通过getData方法将报文拆解为字节数组,最后通过Receiver类的store方法保存在Spark的内存中构建能够交由Spark核心框架处理的RDD。
与UDP的方式不同,TCP的连接的接收对象并不是流媒体数据,TCP的数据接收更加倾向于对实时性要求较高的小文件数据集。使用Streaming框架接收TCP连接数据时,同样需要定义继承自Receiver类的接收类,通过定义onStart方法中的receive方法来实现TCP的数据接收。在receive方法中,需要按照TCPSocket的数据传递方法完成数据传递。
在Socket开发中,Streaming侧作为客户端接收数据,基本流程是:
(1)初始化Socket实例
(2)向服务器端发送连接请求
(3)连接确认后传递数据
(4)关闭Socket。
为了完整的仿真数据接收,编写了服务器侧的Socket。为保证业务的实时性要求,服务器端部署的是连续的数据集文件。在本系统中以连续时间分片的方式存在,因此需要在一个视频分片发送完成后继续下一个视频的发送,方法是通过编写Java提供的网络地址实现类InetSocketAddress,实现不改变网络地址和端口的情况下连续发送视频分片。连接建立后,数据传输通过Socket实例的getInputStream方法完成,分片数据传输完成后关闭实例,启动下一个连接。
进一步的,在本发明一实施例中,考虑到视频分片数据在加密、传输和整合过程中可能会遇到的问题,定义了的视频分片数据的格式。整体来看,视频分片数据的格式为“包头+内容”的模式。包头为视频分片的标识符,描述了该视频分片的基本信息,如所属的流媒体内容、包序号、时间戳、加密方式等。视频分片内容为加密后的流媒体内容,终端根据包头的信息和DRM授权,将获得的视频分片内容解密、解封装,将流媒体内容在在用户终端上呈现。
分片格式如表1所示
表1
由于详细定义了视频分片中包头的格式,也为整个系统中内容的分发和整合做好了准备。包头结构中的各字段描述如表2所示:
表2
Spark框架在进行分布式计算的时候,视频分片数据的加密任务分发到各个节点上,必不可少的会遇到任务和加密模块(节点工作站)之间的通信和调度问题。
在Linux的进程间通信通常采用管道的方式。管道本身分为匿名管道和命名管道FIFO(first in first out),两者不同之处在于匿名管道只允许两个具有亲缘关系的进程之间进行通信,而每个FIFO有一个路径名与之关联,从而允许无亲缘关系的进程访问同一个FIFO。在本发明一实施例中,利用命名管道进行与节点工作站的数据传输。
为了避免管道两侧数据传递不同步的情况,在本发明一实施例中,在进行数据传输的过程中采用数据长度校验。即在数据的写入和读出时设计了一个数据长度校验的机制。
如图4所示,在数据发送侧写入内容到管道之前,首先将要写入内容的内容长度先写入管道(S401),然后写入要写入的内容(S402)。数据接收侧读取内容时先读取出管道中内容的长度(S411),然后依照内容的长度读取内容(S412),从而保证了管道内数据传递的完整性,不会造成管道阻塞和数据覆盖的问题。
加密模块读取被加密数据后进行相关的选择性加密,加密后的数据通过输出管道写入数据传递给任务侧(Java程序)。输出管道的数据交换方法与输入管道的方法相同,首先将数据内容长度写入管道,然后写入数据内容。程序侧读取时也先将长度数据读取,然后读取内容,从而保证数据完整性。
由于FIFO的文件属性,因此在对FIFO管道以文件方式进行读写之前,FIFO管道必须已经存在,进程只能对FIFO管道进行打开、关闭、读写等操作。因此,在数据传输之前,利用<K,V>键值对中的K值作为标识创建管道,对每个K值创建一对管道分别为输入管道inputPipe和输出管道outputPipe。输入管道用来传递程序侧到加密测的数据,输出管道用来传递加密后的数据到程序侧。
程序侧与加密侧的管道写入策略是这样的,在写入内容到输入管道之前,首先将要写入内容的内容长度先写入管道,然后写入要写入的内容。读取内容时先读取出管道中内容的长度,然后依照内容的长度读取内容,从而保证了管道内数据传递的完整性,不会造成管道阻塞和数据覆盖的问题。加密模块读取被加密数据后进行相关的选择性加密,加密后的数据通过输出管道写入数据传递给任务侧(Java程序)。输出管道的数据交换方法与输入管道的方法相同,首先将数据内容长度写入管道,然后写入数据内容。程序侧读取时也先将长度数据读取,然后读取内容,从而保证数据完整性。
进一步的,在本发明一实施例中,针对分布式系统特点,在视频加密算法、密钥的层次和密钥的随机性等方面进行了相关性的设计。
视频分片的加密算法选择,采用了高级密钥加密算法AES,密钥长度为128bit,加密轮数设定为10轮。一方面在视频的安全性方面有了良好的保障,另一方面视频的加密效率也得到了较好的权衡。由于AES加密算法在发布以来的成熟应用以及其良好的跨平台性,最重要的是AES加密密钥不存在DES加密算法中出现的弱密钥和半弱密钥的情况。
进一步的,在加密密钥生成的过程中,在视频加密的过程中引入了业务密钥SK,即在本发明一实施例中存在两种密钥,业务密钥SK以及加密密钥CW,其中:
加密密钥CW用于加密视频分片数据的内容;
业务密钥SK用来对加密密钥CW的加密控制字进行加密,保护加密密钥CW的安全性和安全传输。
在加密过程中,首先利用加密密钥对内容进行加密,然后利用业务密钥对加密密钥CW的加密控制字进行加密并存入包头中;
在解密过程中,首先利用与业务密钥对应的解密密钥解密加密密钥CW的加密控制字,然后利用加密密钥CW的加密控制字解密内容。
进一步的,视频分片数据与加密密钥一一对应,不同的视频分片数据采用不同的加密密钥,每个加密密钥都是由生成规则随机产生的。这样就增加了视频的破解难度,即使单一加密密钥也漏也能保证视频数据整体的安全。
同时,从属于同一视频的不同视频分片数据对应同一业务密钥。这样,客户终端只需要一把业务密钥就可以完成解密操作,降低了解密过程中密钥分发操作的复杂程度。
在本发明一实施例中,整个密钥管理及分发的流程如图5所示:需要对视频分片数据加密时,密钥管理系统500将业务密钥和加密密钥分发给节点工作站(501、502、503),每个节点工作站均收到业务密钥和加密密钥。加密密钥与节点工作站对应,业务密钥与视频分片所属的视频对应。不同的节点工作站接收到的加密密钥不同,针对同一视频的节点工作站接收到的业务密钥相同。
当客户端410需要对视频分片数据进行解密时,密钥管理系统500只需要将该视频对应的业务密钥的解密密钥发送给客户端510即可。
综上,根据本发明的方法,利用基于内存的分布式处理框架SparkStreaming作为实时流分布数据集的框架,解决了MapReduce框架中遇到的加密效率不高、数据块尺寸影响加密时间、不支持流式处理等问题。同时本发明还解决了分布式环境下密钥的传递和分发问题。
虽然本发明所公开的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。本发明所述的方法还可有其他多种实施例。在不背离本发明实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变或变形,但这些相应的改变或变形都应属于本发明的权利要求的保护范围。
Claims (10)
1.一种针对实时视频的分布式加密方法,其特征在于,所述方法包括:
利用实时计算框架接收实时视频流数据;
将所述实时视频流数据以时间为基准分割成视频分片数据,每一个时间分片对应一个视频分片数据;
根据所述视频分片数据构建弹性分布式数据集,所述弹性分布式数据集中的每个元素为一个所述视频分片数据;
将所述弹性分布式数据集中的各个元素分发给各个节点工作站;
所述节点工作站对所述视频分片数据进行加密处理并输出加密结果。
2.根据权利要求1所述的方法,其特征在于,根据所述视频分片数据构建弹性分布式数据集,其中,按照预设的时间间隔生成所述弹性分布式数据集,所述弹性分布式数据集对应所述时间间隔内接收到的所有视频分片数据。
3.根据权利要求1或2所述的方法,其特征在于,根据所述视频分片数据构建弹性分布式数据集,其中,构建所述弹性分布式数据集后将所述弹性分布式数据集转化为键值对的形式。
4.根据权利要求1-3中任一项所述的方法,其特征在于,将所述弹性分布式数据集中的各个元素分发给各个节点工作站,其中,利用命名管道进行与所述节点工作站的数据传输。
5.根据权利要求4所述的方法,其特征在于,在数据传输之前,创建一对命名管道分别为为输入管道和输出管道,其中:
所述输入管道用来传递程序侧到加密侧的数据;
所述输出管道用来传递加密后的数据到程序侧。
6.根据权利要求1-5中任一项所述的方法,其特征在于,在进行数据传输的过程中采用数据长度校验,其中:
在写入内容到所述命名管道之前,首先将要写入内容的内容长度先写入所述命名管道,然后写入要写入的内容;
读取内容时先读取出所述命名管道中内容的长度,然后依照内容的长度读取内容。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述视频分片数据以及所述加密结果的封装格式为“包头+内容”,其中:
所述包头包含视频分片的标识符,用于描述所述视频分片的基本信息;
所述内容包含视频分片的流媒体内容。
8.根据权利要求1-7中任一项所述的方法,其特征在于,所述节点工作站对所述视频分片数据进行加密处理,密钥包含业务密钥以及加密密钥,其中:
在加密过程中,先利用所述加密密钥对所述内容进行加密,再利用所述业务密钥对所述加密密钥的控制字进行加密;
在解密过程中,先利用与所述业务密钥对应的解密密钥解密所述加密密钥的控制字,再利用所述加密密钥的控制字解密所述内容。
9.根据权利要求8所述的方法,其特征在于,所述视频分片数据与所述加密密钥一一对应,不同的所述视频分片数据采用不同的加密密钥。
10.根据权利要求9所述的方法,其特征在于,从属于同一视频的不同所述视频分片数据对应同一所述业务密钥。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610638115.2A CN106254896B (zh) | 2016-08-05 | 2016-08-05 | 一种针对实时视频的分布式加密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610638115.2A CN106254896B (zh) | 2016-08-05 | 2016-08-05 | 一种针对实时视频的分布式加密方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106254896A true CN106254896A (zh) | 2016-12-21 |
CN106254896B CN106254896B (zh) | 2019-11-26 |
Family
ID=58079168
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610638115.2A Active CN106254896B (zh) | 2016-08-05 | 2016-08-05 | 一种针对实时视频的分布式加密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106254896B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107979600A (zh) * | 2017-11-29 | 2018-05-01 | 山东超越数控电子股份有限公司 | 一种分字段加密交换机及其工作方法 |
CN108667903A (zh) * | 2018-04-03 | 2018-10-16 | 新华三技术有限公司 | 数据发送方法、装置和存储介质 |
CN108769807A (zh) * | 2018-04-19 | 2018-11-06 | 上海大学 | 一种基于安卓平台的视频加密方法 |
CN109284302A (zh) * | 2018-08-10 | 2019-01-29 | 新华三大数据技术有限公司 | 数据处理方法及装置 |
CN110807063A (zh) * | 2019-09-27 | 2020-02-18 | 国电南瑞科技股份有限公司 | 基于边缘计算的变电站实时数据快速分发同步系统及方法 |
CN110971933A (zh) * | 2018-09-28 | 2020-04-07 | 安讯士有限公司 | 视频流的内容安全 |
CN111010408A (zh) * | 2020-01-06 | 2020-04-14 | 中国银联股份有限公司 | 一种分布式加密和解密方法及系统 |
CN114640866A (zh) * | 2022-05-18 | 2022-06-17 | 电子科技大学成都学院 | 一种基于随机动态的多通道加密方法、装置及系统 |
CN114650188A (zh) * | 2022-05-20 | 2022-06-21 | 广州万协通信息技术有限公司 | 一种基于代理节点的数据安全传输方法及装置 |
CN114679337A (zh) * | 2022-05-25 | 2022-06-28 | 广州万协通信息技术有限公司 | 一种信息分布式处理方法、装置、电子设备及存储介质 |
CN114710693A (zh) * | 2022-05-25 | 2022-07-05 | 广州万协通信息技术有限公司 | 一种视频流分布式传输方法及装置 |
WO2022242607A1 (zh) * | 2021-05-19 | 2022-11-24 | 杭州海康威视数字技术股份有限公司 | 视频数据切片加密方法、装置、系统以及电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1728717A (zh) * | 2004-07-27 | 2006-02-01 | 邓里文 | 一种以太网与准同步数字体系融合的适配方法 |
CN1805407A (zh) * | 2005-01-10 | 2006-07-19 | 上海奇码数字信息有限公司 | 数据流过滤模块及方法、解复用模块、数字电视接收装置 |
CN101166259A (zh) * | 2006-10-16 | 2008-04-23 | 华为技术有限公司 | 手机电视业务保护方法、系统、手机电视服务器及终端 |
US20130250946A1 (en) * | 2012-03-06 | 2013-09-26 | Huawei Technologies Co., Ltd. | Service packet sending and receiving method, apparatus, and system |
CN105069695A (zh) * | 2015-07-28 | 2015-11-18 | 东北电力大学 | 一种智能变电站实时风险分析系统及分析方法 |
US20150372932A1 (en) * | 2012-12-14 | 2015-12-24 | Zte Corporation | Method and apparatus for checking data frame length |
CN105677752A (zh) * | 2015-12-30 | 2016-06-15 | 深圳先进技术研究院 | 一种流式计算和批处理计算相结合处理系统及方法 |
-
2016
- 2016-08-05 CN CN201610638115.2A patent/CN106254896B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1728717A (zh) * | 2004-07-27 | 2006-02-01 | 邓里文 | 一种以太网与准同步数字体系融合的适配方法 |
CN1805407A (zh) * | 2005-01-10 | 2006-07-19 | 上海奇码数字信息有限公司 | 数据流过滤模块及方法、解复用模块、数字电视接收装置 |
CN101166259A (zh) * | 2006-10-16 | 2008-04-23 | 华为技术有限公司 | 手机电视业务保护方法、系统、手机电视服务器及终端 |
US20130250946A1 (en) * | 2012-03-06 | 2013-09-26 | Huawei Technologies Co., Ltd. | Service packet sending and receiving method, apparatus, and system |
US20150372932A1 (en) * | 2012-12-14 | 2015-12-24 | Zte Corporation | Method and apparatus for checking data frame length |
CN105069695A (zh) * | 2015-07-28 | 2015-11-18 | 东北电力大学 | 一种智能变电站实时风险分析系统及分析方法 |
CN105677752A (zh) * | 2015-12-30 | 2016-06-15 | 深圳先进技术研究院 | 一种流式计算和批处理计算相结合处理系统及方法 |
Non-Patent Citations (2)
Title |
---|
YANG ZHOU等: "A Distributed Video Encryption Method Based on Spark", 《JOINT 2016 INTERNATIONAL CONFERENCE ON ARTIFICIAL INTELLIGENCE AND COMPUTER ENGINEERING (AICE 2016) AND INTERNATIONAL CONFERENCE ON NETWORK AND COMMUNICATION SECURITY (NCS2016)》 * |
YANG ZHOU等: "A Multi-grained Video Encryption Method Based on Spark", 《6TH INTERNATIONAL CONFERENCE ON MACHINERY,MATERIALS,ENVIRONMENT,BIOTECHNOLOGY AND COMPUTER(MMEBC 2016)》 * |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107979600A (zh) * | 2017-11-29 | 2018-05-01 | 山东超越数控电子股份有限公司 | 一种分字段加密交换机及其工作方法 |
CN108667903A (zh) * | 2018-04-03 | 2018-10-16 | 新华三技术有限公司 | 数据发送方法、装置和存储介质 |
CN108769807A (zh) * | 2018-04-19 | 2018-11-06 | 上海大学 | 一种基于安卓平台的视频加密方法 |
CN109284302A (zh) * | 2018-08-10 | 2019-01-29 | 新华三大数据技术有限公司 | 数据处理方法及装置 |
CN109284302B (zh) * | 2018-08-10 | 2020-12-01 | 新华三大数据技术有限公司 | 数据处理方法及装置 |
CN110971933B (zh) * | 2018-09-28 | 2022-06-03 | 安讯士有限公司 | 确保视频流的内容安全的视频捕获设备 |
CN110971933A (zh) * | 2018-09-28 | 2020-04-07 | 安讯士有限公司 | 视频流的内容安全 |
US11457179B2 (en) | 2018-09-28 | 2022-09-27 | Axis Ab | Content security for a video stream |
CN110807063A (zh) * | 2019-09-27 | 2020-02-18 | 国电南瑞科技股份有限公司 | 基于边缘计算的变电站实时数据快速分发同步系统及方法 |
CN110807063B (zh) * | 2019-09-27 | 2022-04-01 | 国电南瑞科技股份有限公司 | 基于边缘计算的变电站实时数据快速分发同步系统及方法 |
CN111010408B (zh) * | 2020-01-06 | 2022-02-11 | 中国银联股份有限公司 | 一种分布式加密和解密方法及系统 |
CN111010408A (zh) * | 2020-01-06 | 2020-04-14 | 中国银联股份有限公司 | 一种分布式加密和解密方法及系统 |
WO2022242607A1 (zh) * | 2021-05-19 | 2022-11-24 | 杭州海康威视数字技术股份有限公司 | 视频数据切片加密方法、装置、系统以及电子设备 |
CN114640866A (zh) * | 2022-05-18 | 2022-06-17 | 电子科技大学成都学院 | 一种基于随机动态的多通道加密方法、装置及系统 |
CN114640866B (zh) * | 2022-05-18 | 2022-08-16 | 电子科技大学成都学院 | 一种基于随机动态的多通道加密方法、装置及系统 |
CN114650188A (zh) * | 2022-05-20 | 2022-06-21 | 广州万协通信息技术有限公司 | 一种基于代理节点的数据安全传输方法及装置 |
CN114679337A (zh) * | 2022-05-25 | 2022-06-28 | 广州万协通信息技术有限公司 | 一种信息分布式处理方法、装置、电子设备及存储介质 |
CN114710693A (zh) * | 2022-05-25 | 2022-07-05 | 广州万协通信息技术有限公司 | 一种视频流分布式传输方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106254896B (zh) | 2019-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106254896A (zh) | 一种针对实时视频的分布式加密方法 | |
CN106231346A (zh) | 一种针对离线视频的分布式加密方法 | |
CN105518611B (zh) | 一种远程直接数据存取方法、设备和系统 | |
CN100470439C (zh) | 内容分发系统,许可证分发方法和终端设备 | |
CN104951706B (zh) | 用于存储内容的方法和装置 | |
CN112329038B (zh) | 一种基于usb接口的数据加密控制系统及芯片 | |
US11595187B2 (en) | Communication device and communication method used in decentralized network | |
CN101496327A (zh) | 用于流式多媒体内容的权限管理系统 | |
CN112906037A (zh) | 一种通信加密系统、方法及装置 | |
CN110505066A (zh) | 一种数据传输方法、装置、设备及存储介质 | |
CN102035829B (zh) | 加密装置、解密装置、许可证发布装置和内容数据生成方法 | |
CN110598416B (zh) | 交易调度方法及装置 | |
CN101656583B (zh) | 密钥管理系统和方法 | |
CN103701589A (zh) | 基于虚拟桌面系统的信息传输方法、装置及相关设备 | |
KR20130043563A (ko) | 디지털 콘텐츠의 포렌식 마킹 방법 및 시스템 | |
CN100364305C (zh) | 工业控制网络的信息安全方法及安全功能块 | |
US7606363B1 (en) | System and method for context switching of a cryptographic engine | |
CN116166402A (zh) | 一种数据安全处理方法、系统、安全芯片以及电子设备 | |
CN115859386A (zh) | 芯片加速器、加解密方法、装置、计算机设备和存储介质 | |
CN113452508B (zh) | 数据加密方法、装置、设备和计算机可读存储介质 | |
CN105681027A (zh) | Hsm加密信息同步实现方法、装置和系统 | |
CN109711207B (zh) | 一种数据加密方法及装置 | |
CN113961931A (zh) | adb工具使用方法、装置和电子设备 | |
CN110502915A (zh) | 一种数据处理的方法、装置及系统 | |
CN101444096B (zh) | 加密装置、解密装置、许可证发布装置和内容数据生成方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |