一种三级秘钥加密系统的制作方法

文档序号:18523600发布日期:2019-08-24 10:01阅读:829来源:国知局
一种三级秘钥加密系统的制作方法

本发明涉及秘钥加密技术领域,具体是指一种三级秘钥加密系统。



背景技术:

现有的对称秘钥加密技术对文件进行加密后,秘钥的安全性成为一个难题,一旦存放秘钥的数据库或文件系统被攻破,全部文件都有暴露的风险。



技术实现要素:

为解决上述技术问题,本发明提供的技术方案为:一种三级秘钥加密系统,包括以下步骤:

s1、三级秘钥包括固化于程序中只用于加密系统秘钥的根秘钥、可以动态修改的系统秘钥以及使用随机算法生产的与文件对应的文件秘钥;

s2、文件加密:加密算法采用对称式加密算法,使用256位秘钥、cbc模式,每个文件配置一个文件秘钥和一个初始向量(iv),文件秘钥通过内置的系统秘钥加密后存储在数据库中;

s3、文件解密:文件秘钥和初始向量(iv)两个要素同时具备时才能解密文件,文件秘钥通过系统秘钥加密后存储在数据库中,初始向量存储在加密文件中;解密时需要先读出文件秘钥并解密,然后配合初始向量解密文件数据;

s4、秘钥管理:系统秘钥、文件秘钥与初始向量分别存放在数据库和文件服务器上。

作为改进,所述文件加密流程包括以下步骤:

s2-1、使用秘钥生成算法生成加密需要的长度的秘钥数据(二进制向量);

s2-2、使用随机算法生成文件加密运算时需要的初始向量;

s2-3、使用秘钥及初始向量对文件进行加密;

s2-4、将文件保存在文件存储器,初始向量及文件id保存在加密文件的开头位置,文件id使用流水号或其他方式生成的唯一字符序列;

s2-5、使用“系统秘钥”加密秘钥数据,并将秘钥保存在数据库中,秘钥数据以文件id为主键。

作为改进,所述文件解密流程包括以下步骤:

s3-1、从文件中读出文件id,并根据id从数据库中获取文件秘钥密文;

s3-2、获取系统秘钥密文,解密出系统秘钥并使用系统秘钥解密文件秘钥;

s3-3、使用文件秘钥及从文件中读出的向量数据对文件密文进行解密。

作为改进,所述秘钥管理流程包括以下步骤:

s4-1、系统开发时将根秘钥固化在编译后的程序中,或通过附加独立文件的形式提供;

s4-2、系统秘钥是可以通过对外提供的界面功能由系统管理员触发,系统后台自动生成,并使用根秘钥加密后保存在数据库中,使得开发和测试过程中生成的临时系统秘钥在正式上线时会被替换;

s4-3、文件秘钥和加密向量是每个文件加密时生成的,秘钥被加密存放在数据库(或其他持久化存储方式)中,初始向量以特定格式保存在加密后的文件中;

s4-4、通过s4-1~s4-3的秘钥管理流程,根秘钥由开发者生成存在于应用服务器,系统秘钥使用根秘钥加密、文件秘钥使用系统秘钥加密后存放在数据库服务器,加密初始向量、密文存放在文件服务器。

作为改进,所述系统秘钥每次更改时,需要重新解密文件秘钥并使用新的系统秘钥加密后存储。

采用以上结构后,本发明具有如下优点:本发明通过三级秘钥加密,使系统开发、维护、使用的各个环节不能独立获取到全部秘钥,通过分级秘钥的方法,不需要新的加密算法,确保加密文件的安全性。

附图说明

图1是本发明一种三级秘钥加密系统三级秘钥结构的结构示意图。

图2是本发明一种三级秘钥加密系统文件加密流程的结构示意图。

图3是本发明一种三级秘钥加密系统文件解密流程的结构示意图。

具体实施方式

结合附图1~3,一种三级秘钥加密系统,包括以下步骤:

s1、三级秘钥包括固化于程序中只用于加密系统秘钥的根秘钥、可以动态修改的系统秘钥以及使用随机算法生产的与文件对应的文件秘钥;系统秘钥的初始化和修改在系统上线后系统管理员通过界面触发生成功能,服务器端设置随机秘钥,不向客户端传输,操作者无法接触到秘钥内容,文件秘钥在加密文件时使用安全随机算法生成,客户端无法接触到秘钥内容。

s2、文件加密:加密算法采用对称式加密算法,使用256位秘钥、cbc模式,每个文件配置一个文件秘钥和一个初始向量(iv),文件秘钥通过内置的系统秘钥加密后存储在数据库中;

s3、文件解密:文件秘钥和初始向量(iv)两个要素同时具备时才能解密文件,文件秘钥通过系统秘钥加密后存储在数据库中,初始向量存储在加密文件中;解密时需要先读出文件秘钥并解密,然后配合初始向量解密文件数据;

s4、秘钥管理:系统秘钥、文件秘钥与初始向量分别存放在数据库和文件服务器上。

作为本实施例较佳实施方案的是,所述文件加密流程包括以下步骤:

s2-1、使用秘钥生成算法生成加密需要的长度的秘钥数据(二进制向量);

s2-2、使用随机算法生成文件加密运算时需要的初始向量;

s2-3、使用秘钥及初始向量对文件进行加密;

s2-4、将文件保存在文件存储器,初始向量及文件id保存在加密文件的开头位置,文件id使用流水号或其他方式生成的唯一字符序列;

s2-5、使用“系统秘钥”加密秘钥数据,并将秘钥保存在数据库中,秘钥数据以文件id为主键。

作为本实施例较佳实施方案的是,所述文件解密流程包括以下步骤:

s3-1、从文件中读出文件id,并根据id从数据库中获取文件秘钥密文;

s3-2、获取系统秘钥密文,解密出系统秘钥并使用系统秘钥解密文件秘钥;

s3-3、使用文件秘钥及从文件中读出的向量数据对文件密文进行解密。

作为本实施例较佳实施方案的是,所述秘钥管理流程包括以下步骤:

s4-1、系统开发时将根秘钥固化在编译后的程序中,或通过附加独立文件的形式提供;

s4-2、系统秘钥是可以通过对外提供的界面功能由系统管理员触发,系统后台自动生成,并使用根秘钥加密后保存在数据库中,使得开发和测试过程中生成的临时系统秘钥在正式上线时会被替换;

s4-3、文件秘钥和加密向量是每个文件加密时生成的,秘钥被加密存放在数据库(或其他持久化存储方式)中,初始向量以特定格式保存在加密后的文件中;

s4-4、通过s4-1~s4-3的秘钥管理流程,根秘钥由开发者生成存在于应用服务器,系统秘钥使用根秘钥加密、文件秘钥使用系统秘钥加密后存放在数据库服务器,加密初始向量、密文存放在文件服务器。只要开发与系统运维、系统管理员的职责分开,可以保证整个加密文件的安全。必须同时掌握根秘钥,系统秘钥,文件秘钥以及加密文件才能解密文件,大大提升了文件的安全性。

作为本实施例较佳实施方案的是,所述系统秘钥每次更改时,需要重新解密文件秘钥并使用新的系统秘钥加密后存储。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

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