首页> 中国专利> 一种利用国密SM1算法对视频流进行实时加密的方法及系统

一种利用国密SM1算法对视频流进行实时加密的方法及系统

摘要

本发明涉及一种利用国密SM1算法对视频流进行实时加密的方法及系统,包括以下步骤:利用加密摄像头拍摄明文视频,得到视频流,并将视频流通过数据总线发送给加密摄像头内置的加密模块;加密模块对视频流进行加密后,将密文视频通过网络发送给视频服务器,视频服务器存储密文视频;解密客户端向视频服务器发送视频获取请求;视频服务器接收解密客户端发送的视频获取请求,将请求获取的密文视频发送给解密客户端;解密客户端接收视频服务器发送的密文视频,对密文视频进行解密后,将解密视频进行播放。本发明主要用于内网监控系统以及大型监控系统中,视频解密由专门的服务器承担,因此服务器大屏只需要接入到解密服务器,不需要自己做视频解密任务。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-08-28

    未缴年费专利权终止 IPC(主分类):H04N21/2347 授权公告日:20181009 终止日期:20190911 申请日:20140911

    专利权的终止

  • 2018-10-09

    授权

    授权

  • 2015-03-25

    实质审查的生效 IPC(主分类):H04N21/2347 申请日:20140911

    实质审查的生效

  • 2015-02-25

    公开

    公开

说明书

技术领域

本发明涉及一种对视频流进行加密的方法,特别涉及一种利用国密SM1算法对视频流进行实时加密的方法及系统。 

背景技术

随着视频编码技术和网络技术的快速发展,视频会议、数字电视、视频聊天、在线影视等已经逐渐成为人们日常生活中的一部分。视频会议以其快速实时的特点得到广泛应用,然而,这些视频服务在开放网络环境中很容易遭受人为的攻击,如数据拦截、信息窃取、数据篡改和数据添删等。而对于政府、企业和军事、安防监控等领域,对视频内容的安全要求更高,如何保证视频内容的安全性是当前多媒体领域研究的重点之一。 

目前,多采用认证技术或者权限划分的方式,防止非法用户访问存储器中的视频。在传输方面,多采用建立专门的安全通道保证视频传输的安全性。这些方式都存在一定的缺陷,例如,如果认证过程过于严格,或者权限划分过于复杂将降低用户使用的方便性,极大降低用于体验,相反,如果认证比较简单或者权限划分粒度大,则容易出现漏洞,从而被攻击。因此,对视频内容本身进行加密,可以较好的解决这一问题。 

当前,已经有部分对视频加密的产品,方法是将视频视为普通文本,对存储在本地的视频文件全部加密。这种方式未考虑数据格式不变性和数据可操作性,难以针对传输中的视频进行加密,因此应用受到极大的限制。 

发明内容

本发明所要解决的技术问题是提供一种对视频流进行实时加密的利用 国密SM1算法对视频流进行实时加密的方法及系统。 

本发明解决上述技术问题的技术方案如下:一种利用国密SM1算法对视频流进行实时加密的方法,包括以下步骤: 

步骤1:利用加密摄像头拍摄明文视频,得到视频流,并将视频流通过数据总线发送给加密摄像头内置的加密模块,加密模块对视频流进行加密; 

步骤2:加密模块对视频流进行加密后,得到密文视频,将密文视频通过网络发送给视频服务器,所述视频服务器存储密文视频; 

步骤3:所述解密客户端向视频服务器发送视频获取请求,请求获取视频服务器上的密文视频; 

步骤4:视频服务器接收解密客户端发送的视频获取请求,将请求获取的密文视频发送给解密客户端; 

步骤5:解密客户端接收视频服务器发送的密文视频,利用内置的解密模块对密文视频进行解密后,得到解密视频,并将解密视频进行播放。 

本发明的有益效果是:本发明主要用于监控系统以及大型内网监控系统中。普通监控系统中必须预先集成SM1安全模块后,其播放器才能边解密边浏览视频。而在大型内网监控系统中,可以架设专门进行解密的服务器,监控大屏在内网内无需做解密工作,只需直接访问解密服务器即可进行实时的监控和查看视频。 

在上述技术方案的基础上,本发明还可以做如下改进。 

进一步,所述步骤1中加密模块利用SM1分组对称加密算法对视频流进行加密。 

进一步,所述步骤5中解密模块利用SM1分组对称解密算法对密文视频进行解密。 

进一步,所述加密模块对视频流进行加密的过程利用加密摄像头中的处理器创建的加密线程对视频流进行加密,所述加密线程根据加密摄像头中的 处理器控制的调度线程的调度执行视频流的加密过程。 

进一步,所述步骤1中加密模块对视频流进行加密之前还包括对视频末尾的分组做填充的步骤。 

进一步,所述加密模块对视频流进行加密后还包括对密文视频进行加壳的步骤。 

进一步,一种利用国密SM1算法对视频流进行实时加密的系统,包括内置加密模块的加密摄像头,视频服务器和内置解密模块的解密客户端; 

所述加密摄像头,用于拍摄明文视频,得到视频流,并将视频流通过数据总线发送给内置的加密模块,加密模块对视频流进行加密后,得到密文视频,将密文视频通过网络发送给视频服务器; 

所述视频服务器,用于存储密文视频,接收解密客户端发送的视频获取请求,将视频获取请求请求获取的密文视频发送给解密客户端; 

所述解密客户端,用于向视频服务器发送视频获取请求,接收视频服务器发送的密文视频,利用内置的解密模块对密文视频进行解密后,得到解密视频,并将解密视频进行播放。 

进一步,加密模块内置SM1分组对称加密算法,所述解密模块内置SM1分组对称解密算法。 

附图说明

图1为本发明方法步骤流程图; 

图2为本发明装置结构图。 

附图中,各标号所代表的部件列表如下: 

1、加密摄像头,2、视频服务器,3、解密客户端,4、加密模块,5、解密模块。 

具体实施方式

以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。 

如图1所示,为本发明方法步骤流程图;图2为本发明装置结构图。 

实施例1 

一种利用国密SM1算法对视频流进行实时加密的方法,包括以下步骤: 

步骤1:利用加密摄像头拍摄明文视频,得到视频流,并将视频流通过数据总线发送给加密摄像头内置的加密模块,加密模块对视频流进行加密; 

步骤2:加密模块对视频流进行加密后,得到密文视频,将密文视频通过网络发送给视频服务器,所述视频服务器存储密文视频; 

步骤3:所述解密客户端向视频服务器发送视频获取请求,请求获取视频服务器上的密文视频; 

步骤4:视频服务器接收解密客户端发送的视频获取请求,将请求获取的密文视频发送给解密客户端; 

步骤5:解密客户端接收视频服务器发送的密文视频,利用内置的解密模块对密文视频进行解密后,得到解密视频,并将解密视频进行播放。 

所述步骤1中加密模块利用SM1分组对称加密算法对视频流进行加密。 

所述步骤5中解密模块利用SM1分组对称解密算法对密文视频进行解密。 

所述加密模块对视频流进行加密的过程利用加密摄像头中的处理器创建的加密线程对视频流进行加密,所述加密线程根据加密摄像头中的处理器控制的调度线程的调度执行视频流的加密过程。 

所述步骤1中加密模块对视频流进行加密之前还包括对视频末尾的分组做填充的步骤。 

所述加密模块对视频流进行加密后还包括对密文视频进行加壳的步骤。 

所述步骤1中加密模块对视频流进行加密之前还包括,对加密摄像头获得的视频流进行去噪声、矫正和增强处理,并将处理后的视频流压缩成H.264格式。 

一种利用国密SM1算法对视频流进行实时加密的系统,包括内置加密模块4的加密摄像头1,视频服务器2和内置解密模块5的解密客户端3; 

所述加密摄像头,用于拍摄明文视频,得到视频流,并将视频流通过数据总线发送给内置的加密模块4,加密模块4对视频流进行加密后,得到密文视频,将密文视频通过网络发送给视频服务器2; 

所述视频服务器2,用于存储密文视频,接收解密客户端3发送的视频获取请求,将视频获取请求请求获取的密文视频发送给解密客户端3; 

所述解密客户端3,用于向视频服务器2发送视频获取请求,接收视频服务器2发送的密文视频,利用内置的解密模块5对密文视频进行解密后,得到解密视频,并将解密视频进行播放。 

加密模块4内置SM1分组对称加密算法,所述解密模块4内置SM1分组对称解密算法。 

本方案基于国密SM1算法设计了一种对视频进行加密的方案,视频采用H.264标准编码。国密SM1算法,又称SCB2算法,是由国家密钥管理局编制的一种商用密码分组标准对称算法。H.264是由ISO/IEC与ITU-T组成的联合视频组制定的视频压缩编码标准,自2003年公布以来,已经得到非常广泛的应用。 

本方案设计的加密方案是在视频被压缩编码成H.264格式后,保留视频帧的参数和其它重要信息,仅对帧的数据主体进行加密。加密采用国密SM1硬件方式,也即将明文视频发送到SM1加密模块中,然后从加密模块获得加密后的视频。加密后的视频可以与普通视频一样通过rtp/rtsp协议在网络中传输,是一种通用性更好、健壮性更高、成本更低,安全性更好的视频流 加密方法。 

基于国密SM1的视频加密方法: 

国密SM1算法是由国家密码管理局编制的一种商用密码分组标准对称算法。该算法是国家密码管理部门审批的SM1分组密码算法,分组长度和密钥长度都为128比特,算法安全保密强度及相关软硬件实现性能与AES相当,该算法不公开,仅以IP核的形式存在于芯片中。采用该算法已经研制了系列芯片、智能IC卡、智能密码钥匙、加密卡、加密机等安全产品,广泛应用于电子政务、电子商务及国民经济的各个应用领域(包括国家政务通、警务通等重要领域)。 

视频加密采用TF32A09来实现。TF32A09是同方股份公司采用国产主控32位CPU自主设计的一款高速度、高性能信息安全芯片。该安全芯片集成了高速安全加密算法和通讯接口,采用独有的数据流加解密处理机制,实现了对高速数据流同步加解密功能,在加解密速度上全国领先。同时该安全芯片还集成了键盘主控模块,可广泛应用于高端键盘和安全键盘的设计。TF32A09安全芯片支持国家密码管理局制定的对称密码算法、非对称密码算法和杂凑算法。 

TF32A09安全芯片是一款集各种硬件算法为一身的硬件加密设备。用户在无需关注硬件驱动和电路设计的情况下,调用加密模块提供的算法接口、存储接口等,即可迅速完成安全产品或方案的开发。加密模块可以应用于电力配网、视频加密、环保排污等需要对数据进行保护的领域。 

加密方案: 

视频加密的设备连接的结构图如图2所示。加密时,将加密模块以通用设备总线接口与用户视频终端连接,用户终端控制系统可以把需要加密的视频数据,通过对模块功能的调用,进行加密,然后再把加密后的数据回传系统,再通过通信模块传到远端存储服务器中保存,监控平台的视频调用需要 解密服务器进行配合。 

系统结构: 

基于TF32A09安全芯片的视频加密方案有多种方式,视频在摄像头加密后通过网络直接传输至存储服务器。服务器的视频对外传输时,可以由专门的解密服务器来解密,也可以在客户端安装TF32A09安全芯片,由用户自行解密。图2所示的为由专门解密服务解密的方式,该种方式在外部发送视频请求时,率先读取视频,解密后再转发。该方式主要用于内网监控系统以及大型监控系统中,服务器大屏在内网内无需做解密工作,只需直接访问服务器视频文件即可进行实时的监控和查看视频。 

由于SM1算法仅仅以IP核的形式存在与芯片中,因此,可以采取多种总线方式实现摄像机与安全芯片的连接,,如I2C(Inter-IC)、SPI(serial peripheral interface,串行外围设备接口)、PCI(peripheral component interconnect)总线以及USB(Universal serial bus)等。其中,USB总线是连接计算机系统与外部设备的一种应用非常广泛的串口总线标准,也是一种输入输出接口的技术规范,由于其支持即插即用和较高的数据传输效率,而被广泛地应用于个人电脑和移动设备等信息通讯产品,并扩展至摄影设备、数字电视(机顶盒)、游戏机等其它相关领域。本方案中使用的万协通TF32A09安全芯片也使用USB2.0总线连接。 

使用USB2.0封装后的TF32A09安全芯片时,只需要将其连接到USB接口即可。使用时,需要将安全芯片按照通用大容量USB存储设备的配置方法做相关设置,查找设备时,也可以按照查找USB设备的方式进行,方便快捷。 

总线连接方法包括硬件结构和软件结构两部分。 

硬件连接: 

由于以USB总线的方式实现安全芯片与处理器的连接,TF32A09安 全芯片的结构和总线连接方法非常符合USB总线的规范,因此可以用使用普通USB设备的方式来使用万协通的TF32A09安全芯片。 

通用的USB采用四线电缆,两根用来传送数据的串行通道,另两根为下游设备提供电源,对于高速且需要高带宽的外设,USB以全速12Mbps的传输数据;对于低速外设,USB则以1.5Mbps的传输速率来传输数据。USB总线会根据外设情况在两种传输模式中自动地动态转换。USB是基于令牌的总线,USB主控制器广播令牌,总线上设备检测令牌中的地址是否与自身相符,通过接收或发送数据给主机来响应。USB系统采用级联星型拓扑,该拓扑由三个基本部分组成:主机(Host),集线器(Hub)和功能设备。 

主机,也称为根、根结点或根Hub,一般做在主板上或作为适配卡安装在计算机上。主机包含有主控制器和根集线器,控制着USB总线上的数据和控制信息的流动,每个USB系统只能有一个根集线器,它连接在主控制器上。 

集线器(Hub)提供端口,将设备连接到USB总线上,同时检测连接在总线上的设备,并为这些设备提供电源管理,负责总线的故障检测和恢复。集线器可以为总线提供能源,亦可为自身提供能源(从外部得到电源),自身提供能源的设备可插入总线提供能源的集线器中。安全模块主要负责加密、生成随机数、签名和验证签名等几种基本的计算,整体能耗非常低,因此可以直接将安全模块连接到集线器上,由Hub直接供电即可。 

软件通信方法: 

安全芯片与摄像机连接的软件结构也要要符合USB设备驱动程序的要求。通常的USB驱动程序采用树形拓扑结构,主机侧和设备侧的USB控制器分别成为主机控制器(Host Controller)和USB设备控制器(UDC),每条总线上只有一个主机控制器,负责协调主机和设备间的通信,而设备不能主动向主机发送任何消息。从主机的角度看,USB主机控制器硬件位于最 低层,再其之上是USB主机控制器驱动,再向上是USB核心层,最上层为USB设备驱动程序,如插入主机的U盘、鼠标等设备的驱动。而linux内核中USB设备侧的驱动程序分为三个层次,分别是UDC驱动程序、Gadget API和Gadget驱动程序。UDC直接访问硬件,控制USB设备和主机间的低层通信,向上提供与硬件相关操作的回调函数。Gadget API是UDC驱动程序回调函数的简单包装,Gadget驱动程序具体控制USB设备功能的实现。 

Gadget API把下层UDC程序和上层驱动程序隔离开,使得linux系统中编写USB设备驱动程序时能够把功能的实现和低层的通信分离。因此在开发过程中使用安全芯片时,只需要在内核中按照大容量USB存储设备的配置方法来配置即可实现安全芯片与处理器的通信。 

安全芯片的初始化: 

应用程序调用安全芯片进行加密的方式与调用通用USB设备的方法也一直,具体而言包括以下几个过程:搜索设备,设备初始化,设置密钥,获取明文数据,数据加密,加密完成后关闭设备。 

Linux内核正确分配设备号后,安全芯片以usb设备的形式挂载在系统的“/dev/bus/usb”或者“/proc/bus/usb”目录下,应用程序调用时需要搜索该区域及其子目录下的内容,根据设备的ID号等信息进行搜索和加载。 

识别之后,在linux系统中,每次调用外部设备前,会调用ioctl()将设备重置一次。在linux系统的USB驱动程序中,ioctl的参数有USBDEVFS_RESET和USBDEVFS_RESETEP两种。这里我们使用后一种,原因是前者会调用系统驱动程序中的proc_resetdevice()方法,也即将USB设备断点复位一次,并重新挂载相关驱动程序,因此重置时间比较长。而USBDEVFS_RESETEP调用的是驱动程序里的proc_resetep()方法,系统检 查设备是否正确,正常时直接将其返回,否则仅仅将端口信息重置,因此重置速度比较快。 

对监控系统中的视频加密时,是以帧为单位进行的,也即每产生一帧,即加密一次。对于帧速率为30帧/s的摄像头,每次需要重复上述操作30次,因此使用USBDEVFS_RESETEP方式,可以降低系统时延。 

初始化成功后,即可设置加密的密钥,然后读取明文并加密。 

使用安全芯片对视频加密: 

国密SM1对称分组加密算法的密钥长度为16字节,也即每次加密必须以16个字节为单位计算,对于末尾不足一个加密单位的,要先填充再加密。 

另外,由于安全模块内部的缓冲区间有限,一个视频数据帧的大小往往超过了安全模块内存缓冲区的大小,因此,需要先将比较大的视频帧分块,逐个加密后再组合到一起。 

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。 

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号