一种生成密钥的方法及宿主设备与流程

文档序号:12182274阅读:219来源:国知局
一种生成密钥的方法及宿主设备与流程

本发明实施例密钥产生及应用领域,尤其涉及一种生成密钥的方法及宿主设备。



背景技术:

目前,网络安全和个人隐私安全已经影响到了我们生活的方方面面,个人信息被盗取、银行卡被盗刷的现象经常出现。加密技术作为提高网络信息安全的关键技术手段,对保证通信和数据安全发挥了重要的作用。现有的加密技术主要采用的方法是通过公私密钥相配合对传输文件进行加密和解密,从而实现文件的安全传输。该方法的具体过程为:在计算机上运行程序产生密钥,然后将生成的密钥保存在计算机的硬盘中,用户在需要对文件进行加密或解密时从硬盘中获取密钥。由于密钥以一个文件的形式存储在计算机硬盘中,故每个使用该计算机的用户都可以获取计算机硬盘上的密钥,从而导致密钥的安全性低。



技术实现要素:

本发明实施例提供一种生成密钥的方法及宿主设备,用以解决现有技术中存在的产生的密钥直接存储在本地静态存储区中导致密钥安全性低的问题。

本发明实施例提供了一种生成密钥的方法,包括:

宿主设备接收密钥生成指令;

宿主设备根据指令生成密钥,并将密钥暂存在宿主设备中的动态存储区中;

宿主设备在使用密钥对目标文件进行加密或解密后,清除动态存储区中的密钥。

可选地,宿主设备根据指令生成密钥,包括:

宿主设备获取用户输入的口令;

宿主设备获取自身硬件信息;

宿主设备根据用户输入的口令和自身硬件信息生成密钥。

可选地,还包括:

宿主设备获取宿主设备的外接硬件设备的硬件信息;

宿主设备根据用户输入的口令、自身硬件信息和外接硬件设备的硬件信息生成密钥。

可选地,宿主设备根据用户输入的口令、自身硬件信息和外接硬件设备的硬件信息生成密钥,包括:

宿主设备获取自身多个硬件的硬件信息,并将多个硬件的硬件信息进行拼接确定第一拼接信息;

宿主设备获取外接硬件设备上多个硬件的硬件信息,并将外接硬件设备上多个硬件的硬件信息进行拼接确定第二拼接信息;

宿主设备将用户输入的口令、第一拼接信息和第二拼接信息进行拼接,确定第三拼接信息,根据第三拼接信息生成密钥。

可选地,宿主设备使用密钥对目标文件进行加密或解密,包括:

宿主设备接收加密或解密指令;

宿主设备获取加密或解密指令对应的目标文件;

宿主设备从动态存储区获取生成的密钥,并根据生成的密钥对目标文件进行加密或解密。

相应地,本发明实施例还提供了一种生成密钥的宿主设备,包括:

接收模块,用于接收密钥生成指令;

密钥生成模块,用于根据指令生成密钥,并将密钥暂存在宿主设备中的动态存储区中;

处理模块,用于在使用密钥对目标文件进行加密或解密后,清除动态存储区中的所述密钥。

可选地,密钥生成模块具体用于:

获取用户输入的口令;

获取自身硬件信息;

根据用户输入的口令和自身硬件信息生成密钥。

可选地,密钥生成模块还用于:

获取宿主设备的外接硬件设备的硬件信息;

根据用户输入的口令、自身硬件信息和外接硬件设备的硬件信息生成密钥。

可选地,密钥生成模块具体用于:

获取自身多个硬件的硬件信息,并将多个硬件的硬件信息进行拼接并确定为第一拼接信息;

获取外接硬件设备上多个硬件的硬件信息,并将外接硬件设备上多个硬件的硬件信息进行拼接确定第二拼接信息;

将用户输入的口令、第一拼接信息和第二拼接信息进行拼接,确定为第三拼接信息,根据第三拼接信息生成密钥。

可选地,处理模块具体用于:

接收加密或解密指令;

获取加密或解密指令对应的目标文件;

从动态存储区获取生成的密钥,并根据生成的密钥对目标文件进行加密或解密。

本发明实施例提供一种生成密钥的方法及宿主设备,宿主设备接收密钥生成指令,然后根据指令生成密钥,并将密钥暂存在宿主设备中的动态存储区中,宿主设备在使用密钥对目标文件进行加密或解密后,清除动态存储区中的密钥。本发明实施中由于宿主设备在用户需要加密或解密目标文件时实时生成密钥,并且将密钥暂存在宿主设备的动态存储区中,密钥使用后清除密钥,故当前时刻产生的密钥马上使用,不需要将生成的密钥保存在本地静态存储区中,避免了其他人从本地静态存储区中获取生成的密钥,从而保障了密钥的安全。

附图说明

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

图1为本发明实施例提供的一种生成密钥的方法的流程示意图;

图2为本发明实施例提供的一种密钥生成过程的流程示意图;

图3为本发明实施例提供的另一种生成密钥的方法的流程示意图;

图4为本发明实施例提供的一种生成密钥的宿主设备的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明实施例中的宿主设备可以是任意能运行密钥生成程序的硬件设备,比如计算机、服务器、密钥生成器等。

本发明实施例中生成的密钥可以是对称密钥,也可以是非对称密钥。使用对称密钥加密时,信息发送方和接收方使用同一个密钥加密和解密数据。使用非对称密钥加密时,信息发送方和接方使用不同的密钥分别完成加密和解密操作。非对称密钥中一个公开发布,即公钥,另一个由用户自己秘密保存,即私钥。信息发送者使用公钥加密时,信息接收者则用私钥去解密。信息发送者用私钥加密时,信息接收者则用公钥去解密。

图1例性示出了本发明实施例提供的一种生成密钥的方法的流程,该流程可以由生成密钥的宿主设备执行。

如图1所示,该流程的具体步骤包括:

步骤S101,宿主设备接收密钥生成指令。

步骤S102,宿主设备根据指令生成密钥,并将密钥暂存在宿主设备中的动态存储区中。

步骤S103,宿主设备在使用密钥对目标文件进行加密或解密后,清除动态存储区中的密钥。

具体实施中,用户在需要加密或解密目标文件时,启动宿主设备上密钥生成程序,密钥生成程序根据接收的指令生成密钥,密钥生成后会自动保存在动态存储区中,本发明实施例中动态存储区可以是运行内存,即密钥生成程序运行过程中宿主设备分配的临时存储区。密钥生成程序在运行过程中,动态存储区会一直保存密钥生成程序生成的密钥。宿主设备可从动态存储区中获取密钥对目标文件进行加密或解密。加密后若关闭密钥生成程序,则动态存储区中暂存的密钥会被清除,但是宿主设备对目标文件进行加密或解密后没有关闭密钥生成程序,则密钥会继续保存在动态存储区中。由于宿主设备在用户需要加密或解密目标文件时实时生成密钥,并且在密钥使用后清除密钥,故生成的密钥不需要保存在本地静态存储区中,避免了其他人从本地静态存储区中获取生成的密钥,从而保障了密钥的安全。

进一步地,为了清楚介绍密钥的生成过程,本发明实施例提供了一种密钥生成过程的示例,如图2所示,包括以下步骤:

步骤S201,宿主设备获取用户输入的口令。

步骤S202,宿主设备获取自身多个硬件的硬件信息和外接硬件设备上多个硬件的硬件信息。

步骤S203,宿主设备将自身多个硬件的硬件信息进行拼接确定第一拼接信息。

步骤S204,宿主设备将外接硬件设备上多个硬件的硬件信息进行拼接确定第二拼接信息。

步骤S205,宿主设备将用户输入的口令、第一拼接信息和第二拼接信息进行拼接确定第三拼接信息。

步骤S206,根据第三拼接信息生成密钥。

具体实施中,在步骤S201中,宿主设备上的密钥生成程序运行后,提示用户输入口令。口令由用户自己确定并输入,口令可以由数字、字母等组成,口令的位数可以根据具体情况由密钥生成算法来确定。比如设定口令由四位数字组成,那么口令的形式可以是Passwd=1234,其中Passwd为口令。若设定口令由四个字母组成,那么口令的形式可以是Passwd=ABCD,其中Passwd为口令,口令也可以是数字和字母混合组成,此处不再举例。宿主设备获取用户输入的口令不同时,生成的密钥也不同。

获取用户输入的口令之后,在步骤S202和步骤S203中,宿主设备获取自身多个硬件的硬件信息,其中获取硬件信息的硬件对象可以是中央处理器(Central Processing Unit,简称CPU)、内存、主板、外设部件互连标准(Peripheral Component Interconnect,简称PCI)、网卡、通用串行总线(Universal Serial Bus,简称USB)接口、串口硬盘(Serial ATA,简称sata)接口等。宿主设备可获取多个硬件的硬件信息,并将多个硬件信息进行拼接,比如获取CPU的硬件信息:CPU-id,获取内存的硬件信息:内存-id,获取PCI的硬件信息:PCI-id,获取网卡的硬件信息:网卡-mac地址。将上述四个硬件的硬件信息进行拼接得到第一拼接信息为:Temp-data=CPU-id:内存-id:PCI-id:网卡-mac地址,其中Temp-data为第一拼接信息。将多个硬件的硬件信息进行拼接时,拼接的顺序不同时得到的第一拼接信息也不同,拼接的顺序可以根据具体情况设定。在步骤S202和步骤S204中,宿主硬件设备还获取了外接硬件设备的硬件信息,具体获取过程为:宿主设备确定需要获取硬件信息的外接硬件设备,并获取该外接硬件设备的编号,例如该外接硬件设备的编号为01。宿主设备使用对称算法对外接硬件设备编号01和步骤S201中用户输入的口令进行加密,并以文件形式发送给该外接硬件设备,加密密码为固定值infosec_enc_key。设定步骤S201中用户输入的口令为:Passwd=1234。需要说明的是宿主设备和外接硬件设备之间进行数据传输时采用对称加密和解密,即加密密码和解密密码相同。编号为01的外接硬件设备接收到加密文件后使用对称算法对文件进行解密,解密密码为固定值infosec_enc_key,解密后得到外接硬件设备编号01以及用户输入的口令1234。之后该外接硬件设备获取自身多个硬件的硬件信息,其中获取硬件信息的硬件对象可以是中央处理器(Central Processing Unit,简称CPU)、内存、主板、外设部件互连标准(Peripheral Component Interconnect,简称PCI)、网卡、通用串行总线(Universal Serial Bus,简称USB)接口、串口硬盘(Serial ATA,简称sata)接口等。外接硬件设备可获取自身多个硬件的硬件信息,并将多个硬件信息进行拼接,比如获取CPU的硬件信息:CPU-Id,获取内存的硬件信息:内存-Id,将上述两个硬件的硬件信息与外接硬件设备编号01进行拼接并封装得到第二拼接信息hard_message,之后外接硬件设备使用对称算法对第二拼接信息进行加密,并以文件形式发送给宿主设备,加密密码为用户输入的口令1234。宿主设备接收到加密文件后使用对称算法对加密文件进行解密,解密密码同样为用户输入的口令1234。解密后宿主设备获取了第二拼接信息。需说明的是本发明实施例中的外接硬件设备可以是与宿主硬件设备连接的任意能够运行加密或解密程序的设备。

在步骤S205和步骤S206中,宿主设备将用户输入的口令、第一拼接信息和第二拼接信息进行拼接,即Passwd、Temp-data和hard_message进行拼接,拼接后得到第三拼接信息,以第三拼接信息为基础运行密钥生成程序,并对运行结果数据进行封装得到密钥文件,其中封装过程按照RSA(公钥加密算法)或国密标准,以报文(Type-length-value,简称TLV)格式封装成对应格式的密钥文件。

由于本发明实施例中在宿主设备上根据用户输入的口令、宿主设备的硬件信息和外接硬件设备的硬件信息确定密钥,故生成的密钥时不需要采集其它信息,直接利用现有的信息即可生成密钥,从而既简化了生成密钥过程,也保证了密钥的复杂度。

进一步地,密钥生成后,宿主设备可使用密钥对目标文件进行加密,包括:

宿主设备接收加密或解密指令;

宿主设备获取加密或解密指令对应的目标文件;

宿主设备从动态存储区获取生成的密钥,并根据生成的密钥对目标文件进行加密或解密。

具体实施中,本发明实施例生成的密钥存在多种应用,比如对称加密应用、非对称加密应用、数字签名应用、P10证书申请应用、数字信封应用等。下面以非对称加密应用和数字签名应用为例具体介绍。

当本发明实施例中生成的密钥应用于非对称加密时,宿主设备接收加密或解密指令并生成密钥,生成的密钥包括私钥和公钥,其中公钥公开,私钥保存在宿主设备的动态存储区中。发送方使用公开的公钥对目标文件进行加密并发送给宿主设备,宿主设备接收到加密后的目标文件后,从动态存储区中获取私钥对目标文件进行解密。

当本发明实施例生成的密钥应用于数字签名时,宿主设备接收加密或解密指令并生成密钥,生成的密钥包括私钥和公钥,其中公钥公开,私钥保存在宿主设备的动态存储区中。宿主设备使用动态存储区中的私钥对目标文件进行加密并签名之后发送,接收方接收到加密后的目标文件后使用公开的公钥对目标文件进行解密并获取签名,通过验证签名确定目标文件的真实性和完整性。

为了更清楚的介绍上述方法流程,本发明实施例提供以下示例,图3示例性示出了本发明实施例提供的另一种生成密钥的方法流程。

如图3所述,该方法包括以下步骤:

步骤S301,启动密钥生成程序,程序运行界面弹出口令输入窗口。

步骤S302,用户输入口令。

步骤S303,获取宿主设备的硬件信息。

步骤S304,以用户输入的口令和宿主设备的硬件信息为基础运行密钥生成程序。

步骤S305,对运行结果进行封装得到密钥。

步骤S306,将生成的密钥保存在宿主设备的动态存储区中。

步骤S307,判断密钥生成程序是否停止运行,若是则执行步骤S308,否则执行步骤S309。

步骤S308,清除动态存储区中保存的密钥。

步骤S309,动态存储区继续保存生成的密钥。

从上述内容可以看出,本发明实施例提供了一种生成密钥的方法及宿主设备,宿主设备接收密钥生成指令,然后根据指令生成密钥,并将密钥暂存在宿主设备中的动态存储区中,宿主设备在使用密钥对目标文件进行加密或解密后,清除动态存储区中的密钥。本发明实施中由于宿主设备在用户需要加密或解密目标文件时实时生成密钥,并且将密钥暂存在宿主设备的动态存储区中,密钥使用后清除密钥,故当前时刻产生的密钥马上使用,不需要将生成的密钥保存在本地静态存储区中,避免了其他人从本地静态存储区中获取生成的密钥,从而保障了密钥的安全。

基于相同构思,图4示例性的示出了本发明实施例提供的一种生成密钥的宿主设备的结构,该宿主设备可以执行生成密钥的流程。

如图4所示,该宿主设备包括:

接收模块401,用于接收密钥生成指令;

密钥生成模块402,用于根据指令生成密钥,并将密钥暂存在宿主设备中的动态存储区中;

处理模块403,用于在使用密钥对目标文件进行加密或解密后,清除动态存储区中的所述密钥。

可选地,密钥生成模块402具体用于:

获取用户输入的口令;

获取自身硬件信息;

根据用户输入的口令和自身硬件信息生成密钥。

可选地,密钥生成模块402还用于:

获取宿主设备的外接硬件设备的硬件信息;

根据用户输入的口令、自身硬件信息和外接硬件设备的硬件信息生成密钥。

可选地,密钥生成模块402具体用于:

获取自身多个硬件的硬件信息,并将多个硬件的硬件信息进行拼接确定第一拼接信息;

获取外接硬件设备上多个硬件的硬件信息,并将外接硬件设备上多个硬件的硬件信息进行拼接确定第二拼接信息;

将用户输入的口令、第一拼接信息和第二拼接信息进行拼接,确定第三拼接信息,根据第三拼接信息生成密钥。

可选地,处理模块403具体用于:

接收加密或解密指令;

获取加密或解密指令对应的目标文件;

从动态存储区获取生成的密钥,并根据生成的密钥对目标文件进行加密或解密。

从上述内容可以看出,本发明实施例提供了一种生成密钥的方法及宿主设备,宿主设备接收密钥生成指令,然后根据指令生成密钥,并将密钥暂存在宿主设备中的动态存储区中,宿主设备在使用密钥对目标文件进行加密或解密后,清除动态存储区中的密钥。本发明实施中由于宿主设备在用户需要加密或解密目标文件时实时生成密钥,并且将密钥暂存在宿主设备的动态存储区中,密钥使用后清除密钥,故当前时刻产生的密钥马上使用,不需要将生成的密钥保存在本地静态存储区中,避免了其他人从本地静态存储区中获取生成的密钥,从而保障了密钥的安全。

本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

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

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