一种用于生成秘钥的电路、信息加密和解密的方法与流程

文档序号:19346343发布日期:2019-12-06 20:53阅读:326来源:国知局
一种用于生成秘钥的电路、信息加密和解密的方法与流程

本发明涉及无线通信技术领域,特别涉及一种用于生成秘钥的电路、信息加密和解密的方法。



背景技术:

在视频监控系统中,首先启动摄像机,然后摄像机采集视频数据,并将采集到的视频数据传输到服务器进行保存,或传输到客户端,供用户观看。

通常情况下,视频监控系统中的摄像机不可以随便启动,视频也不能被随便观看,所以未经授权的用户不可以擅自运行摄像机,也不可以随时获取视频数据,这样,则需要在运行摄像机和获取视频数据时进行加解密,使授权的用户可以运行摄像机和获取视频数据。

现有技术中,对运行摄像机或获取视频数据进行加解密时,通常采用传统的加密或解密方法,将秘钥存储在nvm(non-volatilememory,非易失性存储器)中,这样,秘钥容易被攻击者获取或破解。



技术实现要素:

本发明提供一种用于生成秘钥的电路、信息加密和解密方法,用以解决现有技术中存在的对运行摄像机或获取视频数据进行加密或解密时,秘钥不安全的问题。

第一方面,本发明实施例提供一种用于生成秘钥的电路,该电路包括:时钟模块、分频模块、选择模块以及比较模块,其中,所述时钟模块用于输出时钟信号;所述分频模块与所述时钟模块连接,用于将输入的所述时钟信号进行分频处理,输出至少三个分频信号;所述选择模块与所述分频模块连接,用于根据用户输入的指令信息,从所述分频模块输出的至少三个分频信号中选择至少两个分频信号,并输出选择的分频信号,其中,所述指令信息为随机指令信息或固定指令信息;所述比较模块与所述选择模块连接,用于根据在预设时间内输入的至少两个分频信号确定至少两个计数值,并比较所述至少两个计数值,根据比较结果输出用于对目标信息进行加密或解密的秘钥。

上述用于生成秘钥的电路,与时钟模块连接的分频模块可以将输入的时钟信号进行分频处理,输出至少三个分频信号,与分频模块连接的选择模块根据用户输入的指令信息,从分频模块输出的至少三个分频信号中选择至少两个分频信号,与选择模块连接的比较模块根据输入的至少两个分频信号确定至少两个计数值,并比较两个计数值,输出用于对目标信息进行加密或解密的秘钥。由于晶圆的物理结构和半导体加工工艺的细微差异,所以每个用于生成秘钥的电路输出的用于对目标信息进行加密或解密的秘钥不同,从而使对目标信息进行加密或解密的秘钥不是特定的,保证秘钥的安全性。

在一种可能的实现方式中,所述分频模块包括:至少三个并联的分频器;

所述分频器分别与所述时钟模块、所述选择模块连接,用于将输入的所述时钟信号进行分频处理,并将处理后的分频信号通过输出端输出给所述选择模块。

上述用于生成秘钥的电路,至少三个并联的分频器输出至少三个分频信号,通过至少三个分频器的输出端输出给选择模块,从而可以使选择模块进行选择输出。

在一种可能的实现方式中,所述选择模块包括:至少两个多路选择器;

所述多路选择器分别与每个分频器、所述比较模块连接,用于将输入的至少三个分频信号进行选择处理,并将选择后的分频信号通过输出端输出给所述比较模块。

上述用于生成秘钥的电路,由于存在至少两个多路选择器,所以可以将输入的至少三个分频信号进行选择处理,从而可以将选择后的分频信号通过输出端输出给比较模块,由比较模块分别进行比较处理。

在一种可能的实现方式中,所述比较模块包括定时器、比较器以及至少两个计数器,每个计数器与一个多路选择器、所述定时器、所述比较器连接,其中:

针对一个计数器,用于统计与所述计数器连接的多路选择器输出的分频信号的上升沿和/或下降沿的数量,并输出计数数值;

所述定时器,用于在预设时间到达后,通知所述计数器停止计数;

所述比较器,用于将每个计数器输出的计数数值根据预设比较规则进行比较,根据比较结果输出用于对所述目标信息进行加密或解密的所述秘钥。

上述用于生成秘钥的电路,比较模块可以包括定时器、比较器以及至少两个计数器,且每个计数器连接一个多路选择器,从而可以将输入的选择后的分频信号进行比较,得到对目标信息进行加密或解密的秘钥。

第二方面,本发明实施例提供一种信息加密的方法,该方法应用于fpga芯片,该fpga芯片包括上述第一方面任一所述的用于生成秘钥的电路,该方法包括:

由fpga(field-programmablegatearray,现场可编程门阵列)芯片对用户输入的指令信息进行处理得到秘钥,其中,所述指令信息为随机指令信息或固定指令信息;

使用所述秘钥对目标信息进行加密。

上述方法,首先由fpga芯片对用户输入的指令信息进行处理,得到秘钥,然后使用该秘钥对目标信息进行加密,由于该fpga芯片包括第一方面中的puf电路,因此得到的秘钥不是特定的,在加密过程中秘钥无法被复制或获取,在对目标信息进行加密时,能够保证秘钥的安全性。

在一种可能的实现方式中,所述指令信息为随机指令信息;

所述由fpga芯片对用户输入的指令信息进行处理得到秘钥,包括:

由所述fpga芯片对所述随机指令信息进行处理得到原始秘钥;

所述使用所述秘钥对目标信息进行加密,包括:

使用所述原始秘钥对由设备启动代码生成的密文摘要进行加密;或,

使用第一秘钥对未加密的视频数据进行加密,其中,所述第一秘钥为由所述原始秘钥通过预设算法生成的。

上述方法,如果指令信息为随机指令信息,则fpga芯片对随机指令信息进行处理得到原始秘钥,使用原始秘钥对由设备启动代码生成的密文摘要进行加密或使用对由该原始秘钥通过预设算法生成的第一秘钥对未加密的视频数据进行加密,从而保证设备启动或视频数据的安全性。

在一种可能的实现的方式中,所述指令信息为固定指令信息;

所述由fpga芯片对用户输入的指令信息进行处理得到秘钥,包括:

由所述fpga芯片对所述固定指令信息进行处理得到固定秘钥;

所述使用所述秘钥对目标信息进行加密,包括:

由所述fpga芯片对所述随机指令信息进行处理得到原始秘钥;

使用所述固定秘钥对所述原始秘钥进行加密。

上述方法,指令信息为固定指令信息,则由fpga芯片对用户输入的固定指令信息进行处理,得到固定秘钥,再由fpga芯片对随机指令信息进行处理得到原始秘钥,使用固定秘钥对原始秘钥进行加密,从而保证原始秘钥的安全性。

在一种可能的实现方式中,所述使用所述固定秘钥对所述原始秘钥进行加密后,还包括:

丢弃所述固定秘钥。

上述方法,在使用固定秘钥对原始秘钥进行加密后,丢弃该固定秘钥,从而在下次再使用固定秘钥时重新由固定指令生成,从而保证固定秘钥的安全性。

第三方面,本发明实施例提供一种信息解密的方法,该方法应用于fpga芯片,该fpga芯片包括如第一方面任一所述的用于生成秘钥的电路,该方法包括:

由fpga芯片对用户输入的指令信息进行处理得到秘钥,其中,所述指令信息为随机指令信息或固定指令信息;

使用所述秘钥对目标信息进行解密。

上述方法,首先由fpga芯片对用户输入的指令信息进行处理,得到秘钥,然后使用该秘钥对目标信息进行解密,由于该fpga芯片包括第一方面中的puf电路,因此得到的秘钥不是特定的,在解密过程中秘钥无法被复制或获取,在对目标信息进行解密时,能够保证秘钥的安全性。

在一种可能的实现方式中,所述指令信息为随机指令信息;

所述由fpga芯片对用户输入的指令信息进行处理得到秘钥,包括:

由所述fpga芯片对所述随机指令信息进行处理得到原始秘钥;

所述使用所述秘钥对目标信息进行解密,包括:

使用所述原始秘钥对加密后的视频数据进行解密;或,

使用所述原始秘钥对由其他fpga芯片生成的第一秘钥进行解密。

上述方法,如果指令信息为随机指令信息,则fpga芯片对用户输入的随机指令信息进行处理得到原始秘钥,使用原始秘钥对加密后的视频数据进行解密,或使用原始秘钥对由其他fpga芯片生成的第一秘钥进行解密,从而能够保证对加密后的视频数据进行解密或对由其他fpga芯片生成的第一秘钥进行解密的安全性。

在一种可能的实现方式中,通过下列方式生成所述第一秘钥:

由所述其他fpga芯片对所述随机指令进行处理得到第一原始秘钥;

使用预设算法对所述第一原始秘钥进行加密,得到所述第一秘钥。

上述方法,给出了一种生成第一秘钥的方法,首先由其他fpga芯片对随机指令进行处理得到第一原始秘钥,然后使用预设算法对第一原始秘钥进行加密,得到第一秘钥。

在一种可能的实现方式中,所述指令信息为固定指令信息;

所述由fpga芯片对用户输入的指令信息进行处理得到秘钥,包括:

由所述fpga芯片对所述固定指令信息进行处理得到固定秘钥;

所述使用所述秘钥对目标信息进行解密,包括:

使用所述固定秘钥对由所述fpga芯片对所述随机指令信息进行处理以及由所述fpga芯片对所述固定指令信息进行处理得到的第二秘钥进行解密。

上述方法,如果指令信息为固定指令信息,则fpga芯片对固定指令信息进行处理得到固定秘钥,使用固定秘钥对由fpga芯片对随机指令信息进行处理以及由fpga芯片对固定指令信息进行处理得到的第二秘钥进行解密,从而保证第二秘钥的安全性。

在一种可能的实现方式中,通过下列方式得到所述第二秘钥:

由所述fpga芯片对所述随机指令信息进行处理得到所述原始秘钥,以及由所述fpga芯片对所述固定指令信息进行处理得到所述固定秘钥;

使用所述固定秘钥对所述原始秘钥进行加密,得到所述第二秘钥。

上述方法,给出了一种得到第二秘钥的方法,首先由fpga芯片对随机指令信息进行处理得到原始秘钥,以及由fpga芯片对固定指令信息进行处理得到固定秘钥,再使用固定秘钥对原始秘钥进行加密得到该第二秘钥。

在一种可能的实现方式中,所述使用所述固定秘钥对由所述fpga芯片对所述随机指令信息进行处理以及由所述fpga芯片对所述固定指令信息进行处理得到的第二秘钥进行解密后,还包括:

丢弃所述固定秘钥。

上述方法,使用固定秘钥对fpga芯片对随机指令进行处理以及由fpga芯片对固定指令信息进行处理得到的第二秘钥进行解密后,丢弃固定秘钥,在下次再使用固定秘钥时可以通过将固定指令信息输入到fpga芯片,重新得到固定秘钥,从而保证固定秘钥的安全性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例的摄像机原理图;

图2为本发明实施例提供的一种puf电路;

图3为本发明实施例提供的一种信息加密的方法;

图4为本发明实施例提供的一种信息解密的方法;

图5为本发明实施例提供的一种摄像机注册阶段流程示意图;

图6为本发明实施例提供的一种摄像机启动的流程示意图;

图7为本发明实施例提供的一种服务器端使用加密芯片进行加密的注册过程的流程示意图;

图8为本发明实施例提供的一种摄像机采集传输视频数据的流程示意图;

图9为本发明实施例提供的一种服务器端对加密后的视频数据进行访问的流程示意图;

图10为本发明实施例提供的另一种摄像机端使用加密芯片进行加密的注册的流程示意图;

图11为本发明实施例提供的摄像机端采集视频数据后的传输阶段的流程示意图;

图12为本发明实施例提供的另一种服务器端对加密后的视频数据进行访问的流程示意图;

图13为本发明实施例提供的一种摄像机和服务器认证的注册阶段的流程示意图;

图14为本发明实施例提供的一种摄像机和服务器认证的使用阶段的摄像机端的流程示意图;

图15为本发明实施例提供的一种摄像机和服务器认证的使用阶段的服务器端的流程示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

视频监控系统中的摄像机不能随便启动,视频数据也不能随便被获取,所以需要对摄像机的启动程序和视频数据进行加密,如果只是单纯的给摄像机的启动程序或视频数据设置固定密码,在启动摄像机、加密视频数据、获取加密后的视频数据时,输入固定秘钥即可。但是固定秘钥容易被盗取,存在安全隐患。

puf(physicalunclonablefunction,物理不可克隆技术)是一种芯片领域的“生物特征”识别技术,也可以称之为“芯片dna技术”。本发明实施例采用puf技术来保证秘钥的绝对安全,也就是用于生成秘钥的电路为puf电路,由用于生成秘钥的电路生成对目标信息进行加密或解密的秘钥。使用由用于生成秘钥的电路生成的秘钥对目标信息进行加密或解密时,可以是对摄像机的启动权限进行加密或解密,保证摄像机的启动的安全性,也可以是对摄像机和服务器之间建立双向认证进行加密或解密,保证服务器和摄像机的安全性,还可以是对摄像机采集的视频数据进行加密,对服务器上的视频数据进行解密,保证服务器上的数据不被窃取。

以下将本发明实施例中用于生成秘钥的电路简称为puf电路。

下面对本发明实施例的摄像机原理图进行说明。如图1所示,为本发明实施例的摄像机原理图,包括:sensor传感器1,fpga芯片2,主控最小系统3。其中,fpga芯片2中包含puf电路,主控最小系统3中用于摄像机程序启动以及视频数据的采集、传输、处理等。

图1中,sensor传感器1可以是cmos卷帘快门图像传感器,用于图像的采集。

fpga芯片2接收来自sensor传感器1采集到的图像数据,对图像数据进行一系列预处理后,比如进行3d降噪后,将图像数据传输给主控系统3。

fpga芯片2除了上述功能外,由于fpga芯片2中包含puf电路,所以fpga芯片2还可以将用户输入的指令信息通过该puf电路,生成秘钥,使用该秘钥对主控程序启动、视频数据访问和传输进行安全认证所需的原始秘钥进行加密,保证加密后的秘钥不可破解。

由于晶圆的物理结构和半导体加工工艺的细微差异,所以每个puf电路输出的用于对目标信息进行加密或解密的秘钥不同,从而对目标信息进行加密或解密的秘钥不是特定的,能够保证秘钥的安全性。

主控最小系统3接收来自fpga芯片2的图像数据,可以对该图像数据进行isp(imagesignalprocessing,图像信号处理)、编码处理等。此外,主控最小系统3还可实现安全认证,控制程序启动和视频数据的传输。

以上是对本发明实施例提供的摄像机原理图进行的说明,下面对本发明实施例提供的puf电路进行说明。

如图2所示,本发明实施例提供的一种puf电路,该电路包括:时钟模块200、分频模块201、选择模块202以及比较模块203,其中,所述时钟模块200用于输出时钟信号;所述分频模块201与所述时钟模块200连接,用于将输入的所述时钟信号进行分频处理,输出至少三个分频信号;所述选择模块202与所述分频模块201连接,用于根据用户输入的指令信息,从所述分频模块输出的至少三个分频信号中选择至少两个分频信号,并输出选择的分频信号,其中,所述指令信息为随机指令信息或固定指令信息;所述比较模块203与所述选择模块202连接,用于根据在预设时间内输入的至少两个分频信号确定至少两个计数值,并比较所述至少两个计数值,根据比较结果输出用于对目标信息进行加密或解密的秘钥。

本发明实施例中,puf电路中时钟模块200输出时钟信号,与时钟模块200连接的分频模块201可以将输入的时钟信号进行分频处理,输出至少三个分频信号,与分频模块201连接的选择模块202根据用户输入的指令信息,从分频模块201输出的至少三个分频信号中选择至少两个分频信号,与选择模块202连接的比较模块203根据输入的至少两个分频信号确定至少两个计数值,并比较两个计数值,输出用于对目标信息进行加密或解密的秘钥。由于分频模块是由晶圆制成的,晶圆的物理结构和半导体加工工艺的细微差异,所以每个puf电路输出的用于对目标信息进行加密或解密的秘钥不同,从而使对目标信息进行加密或解密的秘钥不是特定的,保证秘钥的安全性。

在实施中,如图2所示,分频模块201包括:至少三个并联的分频器;

所述分频器分别与时钟模块200、选择模块202连接,用于将输入的所述时钟信号进行分频处理,并将处理后的分频信号通过输出端输出给所述选择模块202。

选择模块202包括:至少两个多路选择器;

所述多路选择器分别与每个分频器、比较模块203连接,用于将输入的至少三个分频信号进行选择处理,并将选择后的分频信号通过输出端输出给所述比较模块。

针对一个多路选择器,多路选择器的输入端与所有分频器的输出端连接,比如,有65个分频器,2个多路选择器,则一个多路选择器的输入端与65个分频器的输出端连接,另一个多路选择器的输入端也与65个分频器的输出端连接。

多路选择器对输入的分频信号进行选择处理时,可以根据用户输入的指令信息,从分频信号中选择至少两个分频信号。由于后续需要比较分频信号,所以这里需要选择至少两个分频信号。

需要说明的是,用户输入的指令信息即图2中的激励输入,可以通过预设的算法将激励输入转换为多个二进制的数字串,然后多路选择器根据一个数字串进行选择。

比如,有3个分频器,2个多路选择器,则激励输入通过预设算法转换为两个3位的二进制数,110和011,110即多路选择器1选择分频器1输出的分频信号,多路选择器2选择分频器2输出的分频信号;011即多路选择器1选择分频器2输出的分频信号,多路选择器2选择分频器3输出的分频信号。

假如分频信号1输出的分频信号为a,分频器2输出的分频信号为b,分频器3输出的分频信号为c,则多路选择器1和多路选择器2进行两次选择,第一次多路选择器1选择的分频信号a,多路选择器2选择的是分频信号b;第二次多路选择器选择的是分频器b,多路选择器2选择的是分频信号c。

在具体实施中,比较模块203还可以包括定时器、比较器以及至少两个计数器,每个计数器与一个多路选择器、定时器、比较器连接,其中:

针对一个计数器,用于统计与计数器连接的多路选择器输出的分频信号的上升沿和/或下降沿的数量,并输出计数数值;

定时器,用于在预设时间到达后,通知计数器停止计数;

比较器,用于将每个计数器输出的计数数值根据预设比较规则进行比较,根据比较结果输出用于对目标信息进行加密或解密的秘钥。

本发明实施例,多路选择器和计数器是一一对应的,且一个多路选择器连接一个计数器。

比如,puf电路中有两个多路选择器,多路选择器1和多路选择器2,则在该puf电路中存在两个计数器,其中一个计数器与多路选择器1连接,另一个计数器与多路选择器2连接。

多路选择器将选择的分频信号发送给计数器,计数器会根据分频信号进行计数,比如该分频信号为上升沿的分频信号,则该计数器计数1,或该分频信号为下降沿的分频信号,则该计数器计数1,或该分频信号是上升沿的分频信号或下降沿的分频信号,计数器都会计数1。

比如,第一次分频器1输出的分频信号a为上升沿的分频信号,则与分频器1连接的计数器1计数1,第二次分频器输出的分频信号b为上升沿的分频信号,则计数器1再计数1,则最终计数为2。第一次分频器2输出的分频信号b为上升沿的分频信号,则与分频器2连接的计数器2计数1,第二次分频器输出的分频信号c既不是上升沿的分频信号,也不是下降沿的分频信号,则计数器2不再计数,即最终计数为1。

计数器计数是有时间限制的,本发明实施例中的puf电路由定时器控制,比如定时1s,则在1s时间到达时,定时器触发计数器不再计数。

定时器触发计数器不再计数后,每个计数器将自身最终数值发送给比较器,由比较器根据预设规则进行比较。

这里的预设规则,可以根据实际需要设置,比如,如果有两个计数器,预设规则可以是计数器1和计数器2输出的数值相同,则比较器输出1,否则输出0;可以是计数器1输出的数值比计数器2输出的数值大,则比较器输出1,否则输出0;还可以是计数器1输出的数值比计数器2输出的数值小,则比较器输出1,否则输出0。

需要说明的是,以上对预设规则只是举例说明,举例的预设规格可以根据实际需要设置。

比较器根据比较结果输出用于对目标信息进行加密或解密的秘钥,比如设置比较器输出次数为3,第一次输出的是0,第二次输出的是1,第三次输出的是0,则最终输出的对目标信息进行加密或解密的秘钥为010。

虽然本发明实施例中的至少三个并联的分频器是型号相同的分频器,理论上每个分频器输出的分频信号是相同的,但是由于晶圆的物理结构和半导体加工工艺的细微差异,给至少三个分频器输入相同的时钟信号时,输出的分频信号是存在细微差别的,也就是说每个分频器输出的分频信号是不同的,所以经过一系列的选择比较后,每个puf电路输出的响应也是不同的,即用于对目标信息进行加密或解密的秘钥不同,从而使对目标信息进行加密或解密的秘钥不是特定的,保证秘钥的安全性。

下面以具体的实施例对puf电路进行说明。

puf电路可以包括1个时钟模块,65个分频器,2个多路选择器,2个计数器,1个定时器以及1个比较器,依次为分频器1、分频器2、分频器3……分频器n,多路选择器1和多路选择器2,计数器1和计数器2。

时钟模块将输出的时钟信号输出给65个分频器,每个分频器对输入的时钟信号进行分频处理,得到65个分频信号,65个分频器分别与多路选择器1和多路选择器2连接,多路选择器1和多路选择器2根据激励输入对65个分频器输出的分频信号进行选择,如果多路选择器1选择的分频信号满足触发条件,则触发与多路选择器1连接的计数器1进行计数,多路选择器2选择的分频信号满足触发条件在,则触发与多路选择器2连接的计数器2进行计数,预设时间达到,定时器触发计数器不再计数,则计数器1和计数器2将自身的最终数值发送给比较器,比较通过预设比较规则输出二进制数值,将多次比较输出的二进制数值组成响应,即对目标信息进行加密或解密的秘钥。

需要说明的是,由于有65个分频器,所以激励输入转换后会生成65位的二进制数,每个65位的二进制数中有2位为1,其余的为0;为1的两位二进制数可以是相邻的,则两个多路选择器选择分频信号时,选择的是相邻的分频器输出的分频信号。

以上说明的是由puf电路如何生成用于对目标信息进行加密或解密的秘钥,秘钥生成后,则可以使用该秘钥对目标信息进行加密或解密。

下面先对使用秘钥对目标信息进行加密的方法进行说明。

本发明实施例提供一种信息加密的方法,如图3所示,该方法应用于fpga芯片,该fpga芯片包括如上述实施例中提供的任一所述的puf电路,该方法包括:

s300,由fpga芯片对用户输入的指令信息进行处理得到秘钥,其中,所述指令信息为随机指令信息或固定指令信息;

s301,使用所述秘钥对目标信息进行加密。

本发明实施例中,首先由fpga芯片对用户输入的指令信息进行处理,得到秘钥,然后使用该秘钥对目标信息进行加密,由于该fpga芯片包括本发明实施例中任一所述的puf电路,因此得到的秘钥不是特定的,在加密过程中无法秘钥被复制或获取,在对目标信息进行加密时,能够保证秘钥的安全性。

fpga(fieldprogrammablegatearray),即现场可编程门阵列,本发明实施例将puf电路集成与fpga芯片中,从而在不增加硬件的同时可以保证秘钥的安全性,节省成本。

在实施中,用户输入的指令信息,可以是随机指令信息,也可以是固定指令信息,由fpga芯片对随机指令信息进行处理得到的是原始秘钥,由fpga芯片对固定指令信息进行处理得到的是固定秘钥,下面分别对使用原始秘钥对目标信息进行加密和使用固定秘钥对目标信息进行加密分别进行说明。

方式一,使用原始秘钥对目标信息进行加密。

使用原始秘钥对目标信息进行加密时,可以是对设备的启动代码生成的密文摘要进行加密,从而保证设备启动的安全性,也可以是由第一秘钥对未加密的视频数据进行加密,从而保证视频数据的安全性,这里的第一秘钥为由所述原始秘钥通过预设算法生成的。

将设备的启动代码生成密文摘要,可以由设备的主控系统将设备的启动代码通过sha256算法生成密文摘要。

方式二,使用固定秘钥对目标信息进行加密。

由fpga芯片对随机指令信息进行处理得到原始秘钥,使用固定秘钥对原始秘钥进行加密。

使用固定秘钥对原始秘钥进行加密后,为了保证固定秘钥不被窃取,则可以将固定秘钥丢弃,在下次使用时,重新由固定指令通过该fpga芯片生成。

下面再对使用秘钥对目标信息进行解密的方法进行说明。

本发明实施例提供一种信息解密的方法,该方法应用于fpga芯片,该fpga芯片包括如上述实施例中提供的任一所述的puf电路,如图4所示,该方法包括:

s400,由fpga芯片对用户输入的指令信息进行处理得到秘钥,其中,所述指令信息为随机指令信息或固定指令信息;

s401,使用所述秘钥对目标信息进行解密。

本发明实施例中,首先由fpga芯片对用户输入的指令信息进行处理,得到秘钥,然后使用该秘钥对目标信息进行解密,由于该fpga芯片包括第一方面中的puf电路,因此得到的秘钥不是特定的,在解密过程中秘钥无法被复制或获取,在对目标信息进行解密时,能够保证秘钥的安全性。

本发明实施例将puf电路集成于fpga芯片中,从而在不增加硬件的同时可以保证秘钥的安全性,节省成本。

在实施中,用户输入的指令信息可以是随机指令信息,也可以是固定指令信息,如果是随机指令信息,则由fpga芯片对随机指令信息进行处理得到原始秘钥,如果是固定指令信息,则由fpga芯片对随机指令信息进行处理得到固定秘钥,下面分别对生成的原始秘钥和固定秘钥对目标信息进行解密进行说明。

方式一,使用原始秘钥对目标信息进行解密。

使用原始秘钥对加密后的视频数据进行解密,或使用原始秘钥对由其他fpga芯片生成的第一秘钥进行解密。

这里的其他fpga芯片是区别于生成上述原始秘钥的fpga芯片,其他fpga芯片和生成上述原始秘钥的fpga芯片的内部结构是完全相同的,由于晶圆的物理结构和半导体加工工艺的细微差异,所以向其他fpga芯片和生成上述原始秘钥的fpga芯片输入相同的指令信息,输出的结果是不同的。

具体的,由其他fpga芯片生成第一秘钥,可以由其他fpga芯片对随机指令进行处理,得到第一原始秘钥,使用预设算法对第一原始秘钥进行加密,得到第一秘钥。

需要说明的是,这里的预设算法可以是ecc算法。

方式二,使用固定秘钥对目标信息进行解密。

使用固定秘钥对由该fpga芯片对随机指令信息进行处理以及由该fpga芯片对该固定指令信息进行处理得到的第二秘钥进行解密。

这里的第二秘钥,可以首先由改fpga芯片对随机指令信息进行处理得到原始秘钥,以及由改fpga芯片对固定指令信息进行处理得到固定秘钥,然后使用固定秘钥对原始秘钥进行加密,得到第二秘钥。

在使用固定秘钥对由该fpga芯片对随机指令信息进行处理以及由该fpga芯片对固定指令信息进行处理得到的第二秘钥进行解密后,为了保证固定秘钥的安全性,可以丢弃固定秘钥,在下次使用时,重新由该fpga芯片对固定指令进行处理得到。

使用本发明实施例提供的得到秘钥的方法,对目标信息进行加密或解密,由于该fpga芯片中包括的puf电路得到的秘钥无法预测,且每个puf电路得到的秘钥不同,因此使用该秘钥在对目标信息进行加密或解密时,能够保证秘钥的安全性。

下面以具体的实施例进行说明。

为了更好的理解具体实施例,下面先对一些名词进行解释。

数字证书:是由权威机构--ca证书授权(certificateauthority)中心发行的,能提供在internet(网络)上进行身份验证的一种权威性电子文档,人们可以在互联网交往中用它来证明自己的身份和识别对方的身份。

数字签名:又称公钥数字签名、电子签章,是一种类似写在纸上的普通的物理签名,但是需要使用公钥加密领域的技术实现,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。

数字签名是使用数字证书与信息加密技术、用于鉴别电子数据信息的技术,可通俗理解为加盖在电子文件上的“数字指纹”。

数字签名是用数字证书对电子文件签名后在电子文件上保留的签署结果,用以证明签署人的签署意愿。所以数字证书是数字签名的基础,数字签名是数字证书的一种应用结果。

数字签名的作用就是验证数据来源以及数据完整性。解密过程则称为数字签名验证。

ca机构是获得社会绝对认可和有绝对权威的第三方机构,这一点保证了根证书的绝对可靠。

为了更好地理解,可以做个简单比喻:数字证书好比现实中你的身份证,数字签名好比现实中你的签字。

目前的加密算法可以分为对称加密算法和非对称加密算法。

对称加密算法中只有一种密钥,并且是非公开的,如果要解密就得让对方知道密钥。所以其密钥的管理直接决定着它的安全性,密钥持有方必须通过秘密通道将密钥发送给另一方才能实现加密文件的解密。

非对称加密算法的加密和解密过程使用不同的密钥(私钥和公钥),公钥可通过非安全管道来发送或在目录中发布,而私钥由产生者直接维护,绝对保密。其不要求通信双方事先传递密钥或有任何约定就能完成保密通信,并且密钥管理方便,可实现防止假冒和抵赖。因此非对称加密的可靠性要远远高于对称加密,且其更适合数据传输中的保密通信要求。

非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

信息摘要算法通过对所有数据提取指纹信息以实现数据签名、数据完整性校验等功能,具有不可逆性,即加密后无法被解密。该算法可以将任意长度的输入消息转换成固定长度的消息摘要。

信息摘要算法常用于数据完整性验证,对称加密算法常用于数据存储加密,非对称加密算发常用于数据传输加密。

但是非对称算法由于其保密性的大幅提升,必然会导致算法所需的时间比对称算法要长很多。因此非对称算法更适用于数据量小的场合。针对两者优缺点,目前通常采用的方式是:采用非对称加密算法管理对称算法的密钥,然后用对称加密算法加密数据,这样就集成了两类加密算法的优点,既实现了加密速度快的优点,又实现了安全方便管理密钥的优点。

实施例一,摄像机启动的安全认证。

在摄像机启动时,为了防止固件代码(firmwavecode)被篡改而导致固件信息等摄像机的敏感信息被窃取或者被黑客入侵软件,所以通过puf加密技术来严格保证摄像机启动的安全性,通过安全启动认证环节来控制摄像机的正常启动。

由于摄像机启动时间要求尽量短,且消息摘要加密时间要明显短于对称加密算发,因此在摄像机启动时选择消息摘要算法来实现数字签名验证。

摄像机启动过程分为注册阶段和使用阶段。

注册阶段是厂家在第一次运行程序时通过fpga芯片生成验证用的数字签名,并将生成的数字签名存于摄像机的主控系统的flash(闪存)中。

本发明实施例所指的fpga芯片不仅仅指包含内部puf电路的fpga,还可以是其它集成puf电路的专用芯片。

下面对摄像机的注册过程进行说明:

如图5所示,为本发明实施例提供的一种摄像机注册阶段流程示意图。

s500,用户将第一指令信息输入到摄像机主控系统;

s501,摄像机主控系统将第一指令信息传输给包含puf电路的加密芯片(以下简称加密芯片);

s502,摄像机加密芯片对第一指令信息进行处理,生成私钥;

在s502中,加密芯片接收到第一指令信息后,会将第一指令信息翻译成激励信号,然后根据激励信号生成私钥。

s503,摄像机主控系统生成随机数r1;

在s503中,生成随机数r1和现有的加密或解密时生成随机数的方式相同,此处不再举例说明。

s504,用户将第二指令信息输入到摄像机主控系统;

s505,摄像机主控系统将第二指令信息传输给摄像机加密芯片;

s506,摄像机加密芯片对第二指令信息进行处理,生成pufid(identitydocument,唯一编码);

在s506中,同s502中一样,加密芯片接收到第二指令信息后,会将第二指令信息翻译成激励信号,然后根据激励信号生成pufid。

s507,摄像机加密芯片使用pufid加密s502中生成的私钥,生成加密后的私钥;

s508,摄像机加密芯片丢弃pufid;

s509,摄像机将加密后的私钥和s503中生成的随机数r1保存在加密芯片的nvm中;

s510,摄像机主控系统将摄像机的启动代码通过sha256算法生成密文摘要;

s511,摄像机主控系统将密文摘要传输给摄像机加密芯片;

s512,摄像机加密芯片使用s509中保存的私钥和随机数r1,通过hmac_sha256算法,生成第一数字签名;

s513,摄像机加密芯片将第一数字签名发送给摄像机主控系统;

s514,摄像机主控系统将第一数字签名存储在主控系统的flash中。

需要说明的是,摄像机的注册过程是在摄像机厂家执行的,在摄像机第一次运行摄像机程序时执行一次,且只执行一次。

摄像机的注册过程,最终在摄像机加密芯片中存储一个加密后的私钥和一个随机数r1,在摄像机主控系统的flash中存储一个第一数字签名。

此外,当更新固件时,摄像机主控系统会发送一个提示消息给加密芯片,加密芯片收到指令后会生成随机的激励信号,从而产生随机的私钥,按上述流程再执行一次。

下面对摄像机的启动过程进行说明。

如图6所示,为摄像机启动的流程示意图。

s600,摄像机上电开机,初始化;

s601,用户将第二指令信息输入到摄像机主控系统;

s602,摄像机主控系统将第二指令信息传输给摄像机加密芯片;

s603,摄像机加密芯片对第二指令信息进行处理,得到pufid;

s604,摄像机加密芯片使用pufid对s509中加密芯片nvm中存储的加密后的私钥进行解密,得到私钥;

s605,摄像机加密芯片丢弃pufid;

s606,摄像机主控系统将摄像机的启动代码通过sha256算法生成密文摘要;

s607,摄像机主控系统将密文摘要传输给摄像机加密芯片;

s608,摄像机加密芯片使用s604中生成的私钥和s509中nvm中存储的随机数r1,通过hmac_sha256算法生成第二数字签名;

s609,摄像机加密芯片将第二数字签名传输给摄像机主控系统;

s610,摄像机主控系统将flash中存储的第一数字签名和接收到的第二数字签名进行比较;

s611,摄像机主控系统判断第一数字签名和第二数字签名是否一致,若一致,则执行s6612,否则执行s613;

s612,摄像机主控系统正常启动摄像机;

s613,摄像机主控系统禁止启动摄像机。

摄像机主控系统禁止启动摄像机后,可以发出报警信息,提示用户将摄像机返回到厂家处理。

实施例二,对视频数据进行加密和解密。

针对摄像机的视频数据,其占用存储空间比较大,因此一般将视频数据保存在服务器上。为了提升视频数据传输和存储的安全性,可以直接对视频数据进行非对称加密,在摄像机端通过公钥对视频数据加密后存储到服务器上,服务器上的被加密后的视频数据可以通过被加密芯片加密保存的,用于产生对应公钥的私钥进行解密,从而保证视频数据的不可破解性。

用私钥加密,用公钥解密就是一种非对称算法,防止在交互过程中被监听或篡改数据。私钥由加密芯片产生,并保存在加密芯片里,从而进一步避免了传输过程中被窃取或篡改的可能,同时私钥会生成公钥,将公钥作为公共密钥,可用于传输共享。私钥可以计算出公钥,但公钥无法计算得到私钥,具有单向性。其中私钥绝对保密,不参与传输。

视频数据加密和解密可以分为三个阶段,服务器端使用加密芯片进行加密的注册阶段、摄像机端采集视频数据后的传输阶段和服务器端视频数据访问阶段。

下面分别对视频数据的加密和解密的三个阶段进行说明。

如图7所示,为本发明实施例提供的一种服务器端使用加密芯片进行加密的注册过程的流程示意图。

s700,用户将第一指令信息输入到服务器主控系统;

s701,服务器主控系统将第一指令信息传输给服务器加密芯片;

s702,服务器加密芯片对第一指令信息进行处理,生成私钥;

在s702中,将第一指令信息生成私钥过程同s502,相同之处不再赘述。

s703,服务器主控系统生成随机数r2;

在s703中,生成随机数r2和现有的加密或解密时生成随机数的方式相同,此处不再举例说明。

s704,用户将第二指令信息输入到服务器主控系统;

s705,服务器主控系统将第二指令信息传输给加密芯片;

s706,服务器加密芯片对第二指令信息进行处理,生成pufid;

在s706中,将第二指令信息生成私钥过程同s502,相同之处不再赘述。

s707,服务器加密芯片使用pufid加密s702中生成的私钥,生成加密后的私钥;

s708,服务器加密芯片丢弃pufid;

s709,服务器将加密后的私钥和s703中生成的随机数r2保存在加密芯片的nvm中;

s710,服务器加密芯片将私钥通过ecc算法生成公钥;

s711,服务器加密芯片将公钥发送给服务器主控系统;

s712,服务器主控系统将公钥传输给摄像机主控系统;

s713,摄像机主控系统将公钥保存在主控系统的flash中。

服务器端使用加密芯片进行加密的注册过程,最终在服务器的加密芯片中存储一个加密后的私钥和一个随机数r,在摄像机的主控系统的flash存储一个公钥。

如图8所示,为本发明实施例提供的一种摄像机采集传输视频数据的流程示意图。

s800,摄像机主控系统采集视频数据;

s801,摄像机主控系统编码采集到的视频数据,得到编码后的视频数据;

s802,摄像机主控系统生成随机数r3;

s803,摄像机主控系统使用存储在主控系统中flash的公钥和随机数r3,通过rss算法对编码后的视频数据进行加密,得到加密后的视频数据;

s804,摄像机主控系统将加密后的视频数据和随机数r3发送给服务器加密芯片;

s805,摄像机加密芯片将加密后的视频数据和随机数r3保存在nvm中。

如图9所示,为本发明实施例提供的一种服务器端对加密后的视频数据进行访问的流程示意图。

s900,用户将第二指令信息输入到服务器主控系统;

s901,服务器主控系统将第二指令信息传输给服务器加密芯片;

s902,服务器加密芯片对第二指令信息进行处理,得到pufid;

s903,服务器加密芯片使用pufid对加密芯片的nvm中存储的加密后的私钥进行解密,得到私钥;

s904,服务器加密芯片将私钥通过保密通道传输给服务器主控系统;

s905,服务器主控系统将存储在服务器nvm中的加密后的视频数据用存储在自身nvm中的随机数r3和服务器主控系统中存储的私钥,通过rsa算法进行解密,得到解密后的视频数据;

s906,服务器将解密后的视频数据进行解码;

s907,服务器将解码后的视频数据发送给客户端,以使客户端能够正常播放视频数据。

上述实施例二中,私钥和公钥具有唯一性,使用与数量较少的保密或军用产品。但是对于民用或者批量较大的产品,为了降低批量产品和使用难度,会将同一批次的视频数据加密的秘钥设置成相同的秘钥。此时可以选用通信秘钥(session_key),该秘钥是由秘钥组成规则随机产生,一般不由加密芯片生成。加密芯片只是对通信秘钥进行puf加密,保证摄像机端的通信秘钥不被破解。

下面分摄像机端使用加密芯片进行加密的注册阶段、摄像机端采集视频数据后的传输阶段和服务器端视频数据访问阶段这三个阶段进行说明。

如图10所示,为本发明实施例提供的另一种摄像机端使用加密芯片进行加密的注册的流程示意图。

s1000,摄像机主控系统生成通信秘钥;

在s1000中,摄像机主控系统生成通信秘钥的方式和现有生成通信秘钥方式相同,这里不再重复赘述。

s1001,摄像机主控系统将通信秘钥传输给摄像机加密芯片;

s1002,用户将第二指令信息输入到摄像机主控系统;

s1003,摄像机主控系统将第二指令信息传输给摄像机加密芯片;

s1004,摄像机加密芯片对第二指令信息进行处理,生成pufid;

在s1004中,将第一指令信息生成私钥过程同s502,相同之处不再赘述。

s1005,摄像机加密芯片用pufid加密通信秘钥,得到加密后的通信私钥;

s1006,摄像机加密芯片丢弃pufid;

s1007,摄像机加密芯片将加密后的通信私钥保存在加密芯片的nvm中。

如图11所示,为本发明实施例提供的摄像机端采集视频数据后的传输阶段的流程示意图。

s1100,摄像机主控系统采集视频数据;

s1101,摄像机主控系统编码采集到的视频数据,得到编码后的视频数据;

s1102,摄像机主控系统生成随机数r4;

s1103,用户将第二指令信息输入到摄像机主控系统;

s1104,服务器主控系统将第二指令信息传输给服务器加密芯片;

s1105,服务器加密芯片对第二指令信息进行处理,生成pufid;

s1106,服务器加密芯片使用pufid将s1005中存储的加密后的通信秘钥进行解密,得到通信秘钥;

s1107,摄像机加密芯片将通信秘钥传输给摄像机主控系统;

s1108,摄像机主控系统使用通信秘钥和在s1102中生成的随机数r4通过aes算法对编码后的视频数据进行加密,得到加密后的视频数据;

s1109,摄像机主控系统将加密后的视频数据、随机数r3和通信秘钥发送给服务器加密芯片;

s1110,摄像机加密芯片将加密后的视频数据、随机数r3和通信秘钥保存在nvm中。

如图12所示,为本发明实施例提供的另一种服务器端对加密后的视频数据进行访问的流程示意图。

s1200,用户申请访问视频数据;

s1201,服务器的加密芯片使用s1107中保存的通信秘钥和随机数r4,通过aes算法对加密后的视频数据进行解密,得到解密后是视频数据;

s1202,服务器将解密后的视频数据进行解码;

s1203,服务器将解码后的视频数据发送给客户端,以使客户端能够正常播放视频数据。

实施例三,摄像机和服务器的双向认证。

为了防止用户使用假冒的摄像机设备访问服务器或者与服务器进行通信而获取服务器的重要保密信息,因此在摄像机访问服务器前,需要完成服务器和摄像机设备间的安全双向认证。只有事先由厂家认可的摄像机设备才能与服务器完成通信或访问服务器重要信息。该认证过程可以分为注册阶段和使用阶段。

下面分别对摄像机和服务器认证的注册阶段和使用阶段进行说明。

如图13所示,为本发明实施例提供的一种摄像机和服务器认证的注册阶段的流程示意图。

s1300,用户将第一指令信息输入到摄像机主控系统;

s1301,摄像机主控系统将第一指令信息传输给摄像机加密芯片;

s1302,摄像机加密芯片对第一指令进行处理,生成摄像机私钥;

s1303,摄像机主控系统生成摄像机随机数r5;

在s1303中,生成随机数和现有的加密或解密时生成随机数的方式相同,此处不再举例说明。

s1304,用户将第二指令信息输入到摄像机主控系统;

s1305,摄像机主控系统将第二指令信息传输给摄像机加密芯片;

s1306,摄像机加密芯片对第二指令信息进行处理,生成摄像机pufid;

s1307,摄像机加密芯片使用摄像机pufid加密摄像机私钥,生成摄像机加密后的私钥;

s1308,摄像机加密芯片丢弃摄像机pufid;

s1309,摄像机加密芯片将摄像机加密后的私钥保存在摄像机加密芯片的nvm中;

s1310,摄像机加密芯片将摄像机私钥通过ecc算法生成摄像机公钥;

s1311,摄像机加密芯片将摄像机公钥传输给摄像机主控系统;

s1312,摄像机主控系统接收服务器私钥;

s1313,摄像机主控系统使用服务器私钥和摄像机随机数r5对摄像机公钥进行签名,得到第一服务器签名;

s1314,摄像机主控系统将第一服务器签名保存在flash中。

如图14所示,为本发明实施例提供的一种摄像机和服务器认证的使用阶段的摄像机端的流程示意图。

s1400,摄像机接收认证请求;

s1401,用户将第二指令信息输入到摄像机;

s1402,摄像机主控系统将第二指令信息传输给摄像机加密芯片;

s1403,摄像机加密芯片对第二指令信息进行处理,生成摄像机pufid;

s1404,摄像机加密芯片使用摄像机pufid解密摄像机加密后的私钥,得到摄像机私钥;

s1405,摄像机加密芯片丢弃摄像机pufid;

s1406,摄像机主控系统将保存在flash中的摄像机公钥和摄像机随机数r5发送给服务器;

s1407,摄像机接收服务器发送的第二服务器签名、服务器公钥以及服务器随机数r6;

s1408,摄像机比较第一服务器签名和第二服务器签名是否一致,若一致,则执行s1411,否则执行s1412;

s1409,摄像机验证通过;

s1410,摄像机加密芯片使用摄像机私钥和服务器随机数r6对服务器公钥进行签名,生成摄像机签名;

s1411,摄像机加密芯片将摄像机签名发送给服务器主控系统;

s1412,摄像机验证失败。

如图15所示,为本发明实施例提供的一种摄像机和服务器认证的使用阶段的服务器端的流程示意图。

s1500,用户将第一指令信息输入到服务器主控系统;

s1501,服务器主控系统将第一指令信息传输给服务器加密芯片;

s1502,服务器加密芯片对第一指令进行处理,生成服务器私钥;

s1503,服务器主控系统生成服务器随机数r6;

s1504,用户将第二指令信息输入到服务器主控系统;

s1505,服务器主控系统将第二指令信息传输给服务器加密芯片;

s1506,服务器加密芯片对第二指令信息进行处理,生成服务器pufid;

s1507,服务器加密芯片使用服务器pufid加密服务器私钥,生成服务器加密后的私钥;

s1508,服务器加密芯片丢弃服务器pufid;

s1509,服务器加密芯片将服务器私钥通过ecc算法生成服务器公钥;

s1510,服务器加密芯片将服务器公钥传输给服务器主控系统;

s1511,服务器主控系统接收来自摄像机的摄像机公钥和摄像机随机数r5;

s1512,服务器用摄像机随机数r5和服务器私钥对摄像机公钥进行签名,生成服务器签名;

s1513,服务器将服务器签名、服务器公钥和服务器随机数r6发送给摄像机;

s1514,服务器主控系统接收在s1411摄像机发送的摄像机签名;

s1515,服务器用摄像机公钥和摄像机随机数r5解密摄像机签名,得到新的服务器公钥;

s1516,服务器将新的服务器公钥和服务器公钥进行比较,若一致,则执行s1517,否则执行s1518;

s1517,服务器认证通过;

s1518,服务器认证失败。

以上参照示出根据本申请实施例的方法、装置(系统)和/或计算机程序产品的框图和/或流程图描述本申请。应理解,可以通过计算机程序指令来实现框图和/或流程图示图的一个块以及框图和/或流程图示图的块的组合。可以将这些计算机程序指令提供给通用计算机、专用计算机的处理器和/或其它可编程数据处理装置,以产生机器,使得经由计算机处理器和/或其它可编程数据处理装置执行的指令创建用于实现框图和/或流程图块中所指定的功能/动作的方法。

相应地,还可以用硬件和/或软件(包括固件、驻留软件、微码等)来实施本申请。更进一步地,本申请可以采取计算机可使用或计算机可读存储介质上的计算机程序产品的形式,其具有在介质中实现的计算机可使用或计算机可读程序代码,以由指令执行系统来使用或结合指令执行系统而使用。在本申请上下文中,计算机可使用或计算机可读介质可以是任意介质,其可以包含、存储、通信、传输、或传送程序,以由指令执行系统、装置或设备使用,或结合指令执行系统、装置或设备使用。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1