对数据文件进行加密和解密的方法和系统与流程

文档序号:11841862阅读:251来源:国知局
对数据文件进行加密和解密的方法和系统与流程

本申请涉及信息安全和保密技术领域,更具体地,涉及对数据文件进行加密和解密的方法和系统、加密狗以及数据处理设备。



背景技术:

在软件开发过程中所涉及到的重要数据文件的保密性的好坏直接关系到软件开发商的商业利益,因此需要对软件中涉及到的重要数据文件进行加密。

上述目的常借助于加密狗来实现。加密狗(又称加密锁)是一种对数据进行加密以保证数据安全的硬件设备。加密狗通过计算机接口与计算机连接,并在软件执行过程中与计算机交换数据,对数据进行加密。加密狗内部存储空间较小,当重要数据文件较大时,无法将该数据文件放入加密狗进行加密保护。

为此,现有技术提出将对该数据文件进行加密的密钥放入加密狗进行加密保护,从而达到对数据文件进行加密保护的目的。例如,参见专利文献CN 102857336 A,其公开了一种对点阵文件进行加密和解密的方案。具体地,如图1所示,在加密时,执行以下步骤:将点阵文件加密(S110);然后,将用于对加密后的点阵文件进行解密的密钥保存在加密狗中(S120)。相应地,如图2所示,在解密时,执行以下步骤:打印输出装置连接加密狗,并从所述加密狗读取所存储的密钥(S210);所述打印输出装置采用所述密钥执行解密算法,以对加密后的点阵文件进行解密(S220)。

然而,上述方案存在如下问题:

在点阵文件解密过程中,加密狗程序每次的执行结果(相同的密钥数据)通过通讯接口(比如通用串行总线USB接口)返回给打印输出装置。该数据(密钥)可以被破解者通过接口监视软件获取。当加密狗每 次返回的数据(密钥)都相同时,破解者很可能猜测到所获取的数据和重要数据文件相关,从而将该重要数据文件解密,最终造成软件开发商利益受损。



技术实现要素:

本申请的目的在于克服或至少缓解上述问题。

根据本申请的第一方面,提供了一种文件加密方法,包括:根据密钥对数据文件进行加密;将所述密钥保存在加密狗中;以及所述加密狗基于所述密钥产生随机的密钥变形。

在所述文件加密方法中,所述基于所述密钥产生随机的密钥变形可以包括:随机生成真随机数作为第二密钥;根据所述第二密钥对所述密钥进行加密,得到所述密钥的密文;对所述第二密钥进行加密以得到所述第二密钥的密文;将所述密钥的密文和所述第二密钥的密文进行数据交织,得到所述密钥变形。

在所述文件加密方法中,可以采用3DES算法对数据文件进行加密。

在所述文件加密方法中,对所述第二密钥进行加密以得到所述第二密钥的密文可以包括根据加密狗中预存储的扰码对所述第二密钥加密以得到所述第二密钥的密文。

在所述文件加密方法中,所述根据密钥对数据文件进行加密可以包括:根据所述密钥和加密狗标识对数据文件进行加密。

根据本申请的第二方面,提供了一种对加密后的数据文件进行解密的方法,包括:获取加密狗生成的随机的密钥变形;根据所述密钥变形导出密钥;以及利用所述密钥对加密后的数据文件进行解密。

在所述文件解密方法中,所述根据所述密钥变形导出密钥可以包括:对所述密钥变形进行数据解交织,得到所述密钥的密文和第二密钥的密文;对所述第二密钥的密文进行解密,得到所述第二密钥,所述第二密钥为随机生成的真随机数;根据所述第二密钥对所述密钥的密文进行解密,得到所述密钥。

在所述文件解密方法中,根据预存储的扰码对所述第二密钥的密文进行解密以得到所述第二密钥。

在所述文件解密方法中,所述根据密钥对加密后的数据文件进行解密可以包括:根据所述密钥和加密狗标识对加密后的数据文件进行解密。

根据本申请的第三方面,提供了一种对数据文件进行加密的系统,包括:数据处理设备,用于根据密钥对数据文件进行加密;以及加密狗,用于基于预存储的所述密钥产生随机的密钥变形。

在所述系统中,所述加密狗可以被配置为:随机生成真随机数作为第二密钥;根据所述第二密钥对所述密钥进行加密,得到所述密钥的密文;根据扰码对所述第二密钥进行加密,得到所述第二密钥的密文;将所述密钥的密文和所述第二密钥的密文进行数据交织,得到所述密钥变形。

根据本申请的第四方面,提供了一种对加密后的数据文件进行解密的系统,包括:数据处理设备,用于从加密狗获取随机的密钥变形,根据所述密钥变形导出密钥,并利用所述密钥对加密后的数据文件进行解密;以及加密狗,用于根据预存储的所述密钥产生随机的密钥变形。

在所述系统中,所述数据处理设备可以被配置为:对所述密钥变形进行数据解交织,得到所述密钥的密文和第二密钥的密文;对所述第二密钥的密文进行解密,得到所述第二密钥,所述第二密钥为随机生成的真随机数;根据所述第二密钥对所述密钥的密文进行解密,得到所述密钥。

在所述系统中,所述数据处理设备可以被配置为利用预存储的扰码对所述第二密钥的密文进行解密,得到所述第二密钥。

根据本申请的第五方面,提供了一种加密狗,包括:存储单元,用于存储用于对数据文件进行加密的密钥;以及处理单元,用于基于所述密钥产生随机的密钥变形。

在所述加密狗中,所述处理单元可以被配置为:随机生成真随机数作为第二密钥;根据所述第二密钥对所述密钥进行加密,得到所述密钥的密文;对所述第二密钥进行加密以得到所述第二密钥的密文;将所述密钥的密文和所述第二密钥的密文进行数据交织,得到所述密钥变形。

在所述加密狗中,所述存储单元还存储有扰码,且所述处理单元被配置为根据所述扰码对所述第二密钥进行加密以得到所述第二密钥的密 文。

根据本申请的第六方面,提供了一种数据处理设备,包括:通信接口,用于从加密狗获取随机的密钥变形;以及处理单元,用于根据所述密钥变形导出密钥,以利用所述密钥对加密后的数据文件进行解密。

在所述数据处理设备中,所述处理单元可以被配置为:对所述密钥变形进行数据解交织,得到所述密钥的密文和第二密钥的密文;根据扰码对所述第二密钥的密文进行解密,得到所述第二密钥,所述第二密钥为随机生成的真随机数;根据所述第二密钥对所述密钥的密文进行解密,得到所述密钥。

在所述数据处理设备中,所述处理单元可以被配置为利用预存储的扰码对所述第二密钥的密文进行解密,得到所述第二密钥。

本申请上述方面的技术方案通过基于密钥产生随机的密钥变形,使得加密狗每次返回给数据处理设备的包含密钥信息的数据是随机的,因此破解者虽然可以从接口监视到该数据,但每次监视到的数据是不同的,无法通过该数据将重要数据文件解密。如此一来,大大提高了数据传输的安全性和可靠性,使得重要数据文件数据被破解的难度加大,有效地避免了重要数据文件泄露。当用于软件开发时,能够有效保护软件开发商的利益。此外,本申请的技术方案实现复杂度和实施成本较低。

附图说明

通过下面结合附图说明本申请的优选实施例,将使本申请的上述及其它目的、特征和优点更加清楚,其中:

图1是示出了根据现有技术的对数据文件进行加密的方法的流程图;

图2是示出了根据现有技术的对加密后的数据文件进行解密的方法的流程图;

图3是示出了根据本申请第一方面的用于对数据文件进行加密的方法的流程图;

图4是示出了图3所示方法中一个步骤的示例实现方式的流程图;

图5是示出了图4所示实现方式的运算过程的示意图;

图6是示出了根据本申请第二方面的用于对加密后的数据文件进行解密的方法的流程图;

图7是示出了图6所示方法中一个步骤的示例实现方式的流程图;

图8是示出了图7所示实现方式的运算过程的示意图;

图9是示出了根据本申请第三方面的对数据文件进行加密的系统的结构框图;

图10是示出了根据本申请第四方面的对数据文件进行解密的系统的结构框图;

图11是示出了根据本申请第五方面的加密狗的结构框图;以及

图12是示出了根据本申请第六方面的数据处理设备的结构框图。

具体实施方式

下面参照附图对本申请的优选实施例进行详细说明,在描述过程中省略了对于本申请来说是不必要的细节和功能,以防止对本申请的理解造成混淆。

首先,参照图3描述根据本申请第一方面的文件加密方法。如图所示,该方法起始于步骤S310。在该步骤中,数据处理设备(例如计算机)根据密钥对需要保护的数据文件进行加密。如本领域技术人员公知的,术语“密钥”表示在将明文转换为密文的算法(即,加密算法)或将密文转换为明文的算法(即,解密算法)中输入的一种参数。

在一个实施例中,在执行步骤S310时,根据密钥和加密狗标识对数据文件进行加密。

在步骤S310的一非限制性示例实现中,首先,以字符串形式读入数据文件中的每个数据,并将每个数据中的每个字符转换为ASCII码。然后,根据字符个数补零,将其长度凑成8个整数倍。接着,根据密钥(记为Key1)和加密狗标识对经过上述处理的数据文件明文进行加密。作为示例,可以采用3DES算法对数据文件明文进行加密。最后,存储数据文件的密文。

继续参照图3,在步骤S310后,执行步骤S320,将所述密钥保存在加密狗中。接着,执行步骤S330,所述加密狗基于所述密钥产生随机的密钥变形。

图4示出了步骤S330的一非限制性示例实现的流程图。如图所示, 首先,在步骤S331,随机生成真随机数作为第二密钥。作为示例,所述真随机数可以是16字节的硬件真随机数。然后,在步骤S332,根据所述第二密钥对所述密钥进行加密,得到所述密钥的密文。作为示例,可以采用3DES算法对所述密钥进行加密。同时,在步骤S333,对所述第二密钥进行加密以得到所述第二密钥的密文。作为示例,对所述第二密钥进行加密可以是根据加密狗中预存储的扰码对所述第二密钥进行加密,所采用的加密算法包括但不限于用扰码对第二密钥进行加扰。接着,在步骤S334,将所述密钥的密文和所述第二密钥的密文进行数据交织,得到所述密钥变形。

如本领域技术人员公知的,术语“加扰”指代将一个伪随机码序列(即扰码)与待处理信号相乘的数据处理。术语“数据交织”指代一种从本质上讲置乱数据的数据处理,其最大限度地改变信息结构而不改变信息内容。此外,如本领域技术人员将理解的,步骤S332还可以在步骤S333之前或之后执行。

图5进一步示出了图4所示的基于密钥产生随机密钥变形的示例实现方式的运算过程。如图所示,首先,通过执行步骤S331,随机生成真随机数(记为Key2)。接着,通过执行步骤S332,根据所述第二密钥Key2对所述密钥(记为Key1)进行加密,得到所述密钥的密文(记为Key1*)。同时,通过执行步骤S333,对所述第二密钥Key2进行加密以得到所述第二密钥的密文(记为Key2*)。作为示例,对所述第二密钥Key2进行加密可以是根据加密狗中预存储的扰码对所述第二密钥Key2进行加密。接着,通过执行步骤S334,将所述密钥的密文和所述第二密钥的密文进行数据交织,得到所述密钥变形(记为Key-X)。

与上述文件加密方法相对应的,本申请的第二方面给出了一种对加密后的数据文件进行解密的方法。如图6所示,该方法起始于步骤S610。在该步骤中,数据处理设备(例如计算机)获取加密狗生成的随机的密钥变形。接着,在步骤S620中,根据所述密钥变形导出密钥。

图7示出了步骤S620的一非限制性示例实现的流程图。如图所示,首先,在步骤S621,对所述密钥变形进行数据解交织,得到所述密钥的密文和第二密钥的密文。然后,在步骤S622,对所述第二密钥的密文进 行解密,得到所述第二密钥,所述第二密钥为随机生成的真随机数。作为示例,对所述第二密钥的密文进行解密可以是根据预存储的扰码对所述第二密钥的密文进行解密,所采用的解密算法包括但不限于用扰码对第二密钥的密文进行解密。接着,在步骤S623,根据所述第二密钥对所述密钥的密文进行解密,得到所述密钥。作为示例,可以采用3DES算法对所述密钥的密文进行解密。

如本领域技术人员公知的,术语“解扰”指加扰的逆过程。术语“数据解交织”指数据交织的逆过程。

在一个实施例中,在步骤S621之前,所述数据处理设备还可以先和加密狗之间进行初始认证。

图8进一步示出了图7所示的根据密钥变形导出密钥的示例实现方式的运算过程。如图所示,首先,通过执行步骤S621,对所述密钥变形(记为Key-X)进行数据解交织,得到所述密钥的密文(记为Key1*)和第二密钥的密文(记为Key2*)。接着,通过执行步骤S622,对所述第二密钥的密文Key2*进行解密,得到所述第二密钥(记为Key2)。作为示例,对所述第二密钥的密文Key2*进行解密可以是根据预存储的扰码对所述第二密钥的密文Key2*进行解密。接着,通过执行步骤S623,根据所述第二密钥Key2对所述密钥的密文Key1*进行解密,得到所述密钥(记为Key1)。

继续参照图6,在步骤S620后,执行步骤S630,利用所述密钥对加密后的数据文件进行解密。作为示例,可以采用3DES算法对加密后的数据文件进行解密。

在一个实施例中,在执行步骤S630时,根据所述密钥和加密狗标识对加密后的数据文件进行解密。

与上述第一方面的文件加密方法相对应的,本申请的第三方面给出了一种对数据文件进行加密的系统900。如图9所示,所述加密系统900包括数据处理设备910和加密狗920。所述数据处理设备910用于根据密钥对数据文件进行加密。所述加密狗920用于基于预存储的密钥产生随机的密钥变形。

在一个实施例中,所述加密狗920可以被配置为:随机生成真随机 数作为第二密钥;根据所述第二密钥对所述密钥进行加密,得到所述密钥的密文;对所述第二密钥进行加密以得到所述第二密钥的密文;将所述密钥的密文和所述第二密钥的密文进行数据交织,得到所述密钥变形。

可选地,所述数据处理设备910可以是计算机。

与上述第二方面的文件解密方法相对应的,本申请的第四方面给出了一种对数据文件进行解密的系统1000。如图10所示,所述解密系统1000包括数据处理设备1010和加密狗1020。所述数据处理设备1010用于从加密狗1020获取随机的密钥变形,根据所述密钥变形导出密钥,并利用所述密钥对加密后的数据文件进行解密。所述加密狗1020用于根据预存储的所述密钥产生随机的密钥变形。

在一个实施例中,所述数据处理设备1010可以被配置为:对所述密钥变形进行数据解交织,得到所述密钥的密文和第二密钥的密文;对所述第二密钥的密文进行解密,得到所述第二密钥,所述第二密钥为随机生成的真随机数;根据所述第二密钥对所述密钥的密文进行解密,得到所述密钥。

在一个实施例中,所述数据处理设备1010可以被配置为利用预存储的扰码对所述第二密钥的密文进行解密,得到所述第二密钥。

可选地,所述数据处理设备1010可以是计算机。

图11示出了根据本申请第五方面的加密狗1100的结构框图。如图所示,所述加密狗1100,包括:存储单元1110,用于存储用于对数据文件进行加密的密钥;以及处理单元1120,用于基于所述密钥产生随机的密钥变形。

在一个实施例中,所述处理单元1120可以被配置为:随机生成真随机数作为第二密钥;根据所述第二密钥对所述密钥进行加密,得到所述密钥的密文;对所述第二密钥进行加密以得到所述第二密钥的密文;将所述密钥的密文和所述第二密钥的密文进行数据交织,得到所述密钥变形。

在一个实施例中,所述存储单元1110还可以存储有扰码,并且所述处理单元1120可以被配置为根据所述扰码对所述第二密钥进行加密以得到所述第二密钥的密文。

图12示出了根据本申请的第六方面的数据处理设备1200的结构框图。如图所示,所述数据处理设备1200,包括:通信接口1210,用于从加密狗获取随机的密钥变形;以及处理单元1220,用于根据所述密钥变形导出密钥,以利用所述密钥对加密后的数据文件进行解密。

在一个实施例中,所述处理单元1220可以被配置为:对所述密钥变形进行数据解交织,得到所述密钥的密文和第二密钥的密文;对所述第二密钥的密文进行解密,得到所述第二密钥,所述第二密钥为随机生成的真随机数;根据所述第二密钥对所述密钥的密文进行解密,得到所述密钥。

在一个实施例中,所述处理单元1220可以被配置为利用预存储的扰码对所述第二密钥的密文进行解密,得到所述第二密钥。

可选地,所述数据处理设备可以是计算机。

本申请上述方面的技术方案通过基于密钥产生随机的密钥变形,使得加密狗每次返回给数据处理设备的包含密钥信息的数据是随机的,因此破解者虽然可以从接口监视到该数据,但每次监视到的数据是不同的,无法通过该数据将重要数据文件解密。如此一来,大大提高了数据传输的安全性和可靠性,使得重要数据文件数据被破解的难度加大,有效地避免了重要数据文件泄露。当用于软件开发时,能够有效保护软件开发商的利益。此外,本申请的技术方案实现复杂度和实施成本较低。

应当注意的是,在以上的描述中,仅以示例的方式,示出了本申请的技术方案,但并不意味着本申请局限于上述步骤和单元结构。在可能的情形下,可以根据需要对步骤和单元结构进行调整和取舍。因此,某些步骤和单元并非实施本申请的总体发明思想所必需的元素。因此,本申请所必需的技术特征仅受限于能够实现本申请的总体发明思想的最低要求,而不受以上具体实例的限制。

至此已经结合优选实施例对本申请进行了描述。应该理解,本领域技术人员在不脱离本申请的精神和范围的情况下,可以进行各种其它的改变、替换和添加。因此,本申请的范围不局限于上述特定实施例,而应由所附权利要求所限定。

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