本发明涉及数据处理技术领域,具体涉及一种平台数据动态加密的方法及系统。
背景技术:
随着时代的进步,信息化和网络化已经成为互联网发展的主要趋势。大数据的蓬勃发展﹐使得当前许多计算机应用系统将其存储方式从传统的计算机存储系统转向了云存储系统。云存储系统是以云计算为基础,借助集群服务、分布式文件系统和虚拟化等技术为用户提供一个方便快捷、成本低下和可拓展性高的高性能存储平台。
然而,当用户把大量数据放置于云存储平台时,数据泄露、数据丢失的问题也伴随而来,成为云存储用户最为担心的问题。如亚马逊和谷歌等云存储服务商都曾经在运营的过程中出现了不同层次的安全问题,甚至还造成了一些不可挽回的严重后果。所以,云存储能否在当今的网络时代立足,很大程度上取决于它的安全性能是否能满足用户的需求。
因此对于如何提供一种平台数据动态加密的方法及系统变得尤为重要。
技术实现要素:
针对现有技术的不足,本发明公开了一种平台数据动态加密的方法及系统,用于解决上述背景技术中存在的问题。
本发明通过以下技术方案予以实现:
第一方面,本发明公开了一种平台数据动态加密的方法,其特征在于,所述方法包括以下步骤:
s1在平台处架设密钥认证中心,生成客户管理表和密钥表;
s2通过客户端向密钥认证中心发送生成动态密钥请求;
s3密钥认证中心查找用户表验证客户端用户是否合法;若合法,客户端获得密钥后加密本地文件并上传至文件存储服务器;
s4文件存储服务器收到文件后查找用户表验证客户端用户是否合法,若合法,文件存储服务器将文件以及加密密钥的时间记录到文件表中;
s5用户加载平台数据时,首先发送download命令至文件存储服务器,存储服务器收到命令后,先验证用户,通过验证后,将根据请求的文件路径取出文件并返回到客户端;
s6客户端收到加密的文件后,向密钥认证中心发送getunlock命令请求密钥解密文件;
s7密钥验证中心收到命令后,查询密钥表获得密钥并返回returnunlock命令到客户端,客户端收到密钥后解密平台数据供用户使用。
更进一步的,所述方法中,客户端和服务端通信的格式命令包括:
getkey命令,用于客户端向密钥认证中心请求密钥来加密文件上传到存储服务器;
returnkey命令,用于密钥验证中心发送密钥时的命令;
execute命令,用于客户端在加密文件之后,上传至存储服务器时使用的命令;
download命令,用于客户端向存储服务器请求文件时使用的命令;
returndata命令,用于存储服务器将加密文件返回到客户端时使用的命令;
getunlock命令,用于客户端向密钥认证中心请求密钥解密文件时使用的命令;
returnunlock命令,用于密钥认证中心将密钥返回到客户端时使用的命令。
更进一步的,所述方法中,动态密码获取包括以下步骤:
t1密钥认证中心收到客户端getkey命令后,密钥认证中心查找用户表验证客户端用户是否合法;
t2若合法,则进行步骤s3,否则将错误信息返回到客户端;
t3密钥认证中心得到系统当前时间datenowo,密钥认证中心查找密钥表中字段datetime最大的时间datemaxc;
t4密钥认证中心计算出datenow-datemax的差值△h,并比较△h和固定变化密钥周期t;
t5若△h<t或者△h=t,则直接返回密钥表中datemax所对应的密钥privatekey和datemax给客户端;
t6若△h>t,密钥认证中心则生成一个随机的密钥privatekey以及datenow返回给客户端,同时将生成的密钥privatekey和时间datenow存入密钥表中以备用户解密文件。
更进一步的,所密钥钥生成时,首先随机生成两个大小相近的素数i和j,计算加密键范围的公式为:
随机选取整数a为加密键﹐则1<a<η,使得gcd(a,η)=1,根据加密键计算解密密钥k,满足k·a=1modη,这时(a,e)作为公钥,k作为私钥保存,将公钥发送给接收方,私钥留给发送方。
更进一步的,所述用户表存在密钥认证中心和存储服务器中,用来验证用户的合法性以及在密钥认证中心中和密钥表联合使用共同管理密钥,在存储服务器中和文件表联合使用共同管理文件;所述用户表中包含id、username、password字段。
更进一步的,所述密钥表存在密钥认证中心中,用来管理每个用户的加密文件密钥;所述密钥表包含id、datetime、privatekey;所述文件表存在存储服务器中,用来管理每个用户的文件;所述文件表包含id、datetime、filedata。
第二方面,本发明公开了一种平台数据动态加密系统,所述系统用于执行完成第一方面所述的平台数据动态加密的方法,包括存储服务、处理器以及存储有执行指令的存储器,当所述处理器执行所述存储器存储的所述执行指令时,所述处理器硬件执行第一方面所述的平台数据动态加密的方法。
本发明的有益效果为:
本发明通过隔离密钥认证中心和文件存储服务器,且两者互相不知道对方的具体位置,使得即便任一方存在安全泄露问题,也不影响文件的安全性,实现了加密与存储的分离。
本发明密钥是动态变化的,即使攻击者截取了一段密钥,攻击者也无法确定是哪个用户的哪个文件加密,因而也无法解密。
本发明通过加密与存储分离、动态分配密钥实现了用户文件的安全存储、共享和传输双重保证,推动了平台数据加密技术的发展。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是一种平台数据动态加密的方法原理步骤图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
本实施例公开如图1所示的一种平台数据动态加密的方法,其特征在于,所述方法包括以下步骤:
s1在平台处架设密钥认证中心,生成客户管理表和密钥表;
s2通过客户端向密钥认证中心发送生成动态密钥请求;
s3密钥认证中心查找用户表验证客户端用户是否合法;若合法,客户端获得密钥后加密本地文件并上传至文件存储服务器;
s4文件存储服务器收到文件后查找用户表验证客户端用户是否合法,若合法,文件存储服务器将文件以及加密密钥的时间记录到文件表中;
s5用户加载平台数据时,首先发送download命令至文件存储服务器,存储服务器收到命令后,先验证用户,通过验证后,将根据请求的文件路径取出文件并返回到客户端;
s6客户端收到加密的文件后,向密钥认证中心发送getunlock命令请求密钥解密文件;
s7密钥验证中心收到命令后,查询密钥表获得密钥并返回returnunlock命令到客户端,客户端收到密钥后解密平台数据供用户使用。
本实施例通过架设密钥认证中心生成动态密钥,客户端获得密钥后加密本地文件并上传至文件存储服务器,存储服务器中的加密文件只能通过客户端向密钥认证中心请求密钥,客户端得到解密密钥后进行文件解密。其中,密钥认证中心维护用户表和密钥表,存储服务器维护用户表和文件表。
本实施例中用户表存在密钥认证中心和存储服务器中,用来验证用户的合法性,以及在密钥认证中心中和密钥表联合使用共同管理密钥,在存储服务器中和文件表联合使用共同管理文件;用户表中包含id、username、password字段。
本实施例中密钥表存在密钥认证中心中,用来管理每个用户的加密文件密钥;密钥表包含id、datetime、privatekey。文件表存在存储服务器中,用来管理每个用户的文件,文件表包含id、datetime、filedata。
实施例2
本实施例中,客户端和服务端通信的包格式命令主要有如下7种形式:
getkey命令用于客户端向密钥认证中心请求密钥来加密文件上传到存储服务器,getkey命令包含的参数有命令类型command、用户名username、登录密码password。
returnkey命令用于密钥验证中心发送密钥时的命令,returnkey包含的参数有命令类型command、生成的密钥privatekey、生成密钥时的系统时间datetime。
execute命令用于客户端在加密文件之后,上传至存储服务器时使用的命令,upload命令包含的参数有命令类型command、用户名username、登录密码password、加密的文件数据filedata、密钥验证中心返回的datetime。
download命令用于客户端向存储服务器请求文件时使用的命令,download命令包含的参数有命令类型com-mand、用户名username、登录密码password、请求文件的名称filename。
returndata命令用于存储服务器将加密文件返回到客户端时使用的命令,returndata包含的参数有命令类型command、加密的文件filedata、加密文件对应的datetime。
getunlock命令用于客户端向密钥认证中心请求密钥解密文件时使用的命令,
getunlock命令包含的参数有命令类型command、用户名username、登录密码password,加密文件对应的datetime。
returnunlock命令用于密钥认证中心将密钥返回到客户端时使用的命令。
returnunlock命令包含的参数有命令类型command、解密的密钥privatekey。
实施例3
本实施例中,当用户上传文件至文件存储服务器时,首先发送getkey命令至密钥认证中心,密钥认证中心首先验证用户是否合法,当用户通过验证后,密钥认证中心调用生成密钥算法获得密钥并返回returnkey命令到客户端,客户端收到密钥后加密文件并上传至存储服务器,存储服务器收到upload命令后,同样先验证用户,通过验证后将文件存入数据库中,若验证用户不合法则将返回错误信息。
本实施例中,当用户加载文件时,首先发送download命令至文件存储服务器,存储服务器收到命令后,先验证用户,通过验证后,将根据请求的文件路径取出文件并返回到客户端,客户端收到加密的文件后,会向密钥认证中心发送getunlock命令请求密钥解密文件,密钥验证中心收到命令后,查询密钥表获得密钥并返回returnunlock命令到客户端,客户端收到密钥后解密文件供用户使用。
实施例4
本实施例公开动态密码获取的步骤:
t1密钥认证中心收到客户端getkey命令后,密钥认证中心查找用户表验证客户端用户是否合法;
t2若合法,则进行步骤s3,否则将错误信息返回到客户端;
t3密钥认证中心得到系统当前时间datenowo,密钥认证中心查找密钥表中字段datetime最大的时间datemaxc;
t4密钥认证中心计算出datenow-datemax的差值△h,并比较△h和固定变化密钥周期t;
t5若△h<t或者△h=t,则直接返回密钥表中datemax所对应的密钥privatekey和datemax给客户端;
t6若△h>t,密钥认证中心则生成一个随机的密钥privatekey以及datenow返回给客户端,同时将生成的密钥privatekey和时间datenow存入密钥表中以备用户解密文件。
更进一步的,所述密钥生成时,首先随机生成两个大小相近的素数i和j,计算加密键范围的公式为:
随机选取整数a为加密键﹐则1<a<η,使得gcd(a,η)=1,根据加密键计算解密密钥k,满足k·a=1modη,这时(a,e)作为公钥,k作为私钥保存,将公钥发送给接收方,私钥留给发送方。
实施例5
本实施例公开一种平台数据动态加密系统,所述系统用于执行完成平台数据动态加密的方法,包括存储服务、处理器以及存储有执行指令的存储器,当所述处理器执行所述存储器存储的所述执行指令时,所述处理器硬件执行平台数据动态加密的方法。
综上,本发明通过隔离密钥认证中心和文件存储服务器,且两者互相不知道对方的具体位置,使得即便任一方存在安全泄露问题,也不影响文件的安全性,实现了加密与存储的分离。
本发明密钥是动态变化的,即使攻击者截取了一段密钥,攻击者也无法确定是哪个用户的哪个文件加密,因而也无法解密。
本发明通过加密与存储分离、动态分配密钥实现了用户文件的安全存储、共享和传输双重保证,推动了平台数据加密技术的发展。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
1.一种平台数据动态加密的方法,其特征在于,所述方法包括以下步骤:
s1在平台处架设密钥认证中心,生成客户管理表和密钥表;
s2通过客户端向密钥认证中心发送生成动态密钥请求;
s3密钥认证中心查找用户表验证客户端用户是否合法;若合法,客户端获得密钥后加密本地文件并上传至文件存储服务器;
s4文件存储服务器收到文件后查找用户表验证客户端用户是否合法,若合法,文件存储服务器将文件以及加密密钥的时间记录到文件表中;
s5用户加载平台数据时,首先发送download命令至文件存储服务器,存储服务器收到命令后,先验证用户,通过验证后,将根据请求的文件路径取出文件并返回到客户端;
s6客户端收到加密的文件后,向密钥认证中心发送getunlock命令请求密钥解密文件;
s7密钥验证中心收到命令后,查询密钥表获得密钥并返回returnunlock命令到客户端,客户端收到密钥后解密平台数据供用户使用。
2.根据权利要求1所述的平台数据动态加密的方法,其特征在于,所述方法中,客户端和服务端通信的格式命令包括:
getkey命令,用于客户端向密钥认证中心请求密钥来加密文件上传到存储服务器;
returnkey命令,用于密钥验证中心发送密钥时的命令;
execute命令,用于客户端在加密文件之后,上传至存储服务器时使用的命令;
download命令,用于客户端向存储服务器请求文件时使用的命令;
returndata命令,用于存储服务器将加密文件返回到客户端时使用的命令;
getunlock命令,用于客户端向密钥认证中心请求密钥解密文件时使用的命令;
returnunlock命令,用于密钥认证中心将密钥返回到客户端时使用的命令。
3.根据权利要求1所述的平台数据动态加密的方法,其特征在于,所述方法中,动态密码获取包括以下步骤:
t1密钥认证中心收到客户端getkey命令后,密钥认证中心查找用户表验证客户端用户是否合法;
t2若合法,则进行步骤s3,否则将错误信息返回到客户端;
t3密钥认证中心得到系统当前时间datenowo,密钥认证中心查找密钥表中字段datetime最大的时间datemaxc;
t4密钥认证中心计算出datenow-datemax的差值△h,并比较△h和固定变化密钥周期t;
t5若△h<t或者△h=t,则直接返回密钥表中datemax所对应的密钥privatekey和datemax给客户端;
t6若△h>t,密钥认证中心则生成一个随机的密钥privatekey以及datenow返回给客户端,同时将生成的密钥privatekey和时间datenow存入密钥表中以备用户解密文件。
4.根据权利要求1所述的平台数据动态加密的方法,其特征在于,所密钥钥生成时,首先随机生成两个大小相近的素数i和j,计算加密键范围的公式为:
随机选取整数a为加密键﹐则1<a<η,使得gcd(a,η)=1,根据加密键计算解密密钥k,满足k·a=1modη,这时(a,e)作为公钥,k作为私钥保存,将公钥发送给接收方,私钥留给发送方。
5.根据权利要求1所述的平台数据动态加密的方法,其特征在于,所述用户表存在密钥认证中心和存储服务器中,用来验证用户的合法性以及在密钥认证中心中和密钥表联合使用共同管理密钥,在存储服务器中和文件表联合使用共同管理文件;所述用户表中包含id、username、password字段。
6.根据权利要求1所述的平台数据动态加密的方法,其特征在于,所述密钥表存在密钥认证中心中,用来管理每个用户的加密文件密钥;所述密钥表包含id、datetime、privatekey;所述文件表存在存储服务器中,用来管理每个用户的文件;所述文件表包含id、datetime、filedata。
7.一种平台数据动态加密系统,所述系统用于执行完成如权利要求1-6任一项所述的平台数据动态加密的方法,其特征在于,包括存储服务、处理器以及存储有执行指令的存储器,当所述处理器执行所述存储器存储的所述执行指令时,所述处理器硬件执行如权利要求1-6中任一项所述的平台数据动态加密的方法。
技术总结