数据加密及解密的方法和装置与流程

文档序号:12829089阅读:339来源:国知局
数据加密及解密的方法和装置与流程

本发明涉及安全技术领域,具体地,涉及一种数据加密及解密的方法和装置。



背景技术:

随着网络技术的发展,网络服务提供商可提供云存储的服务。用户可以将数据存储到云盘中。例如,用户可将照片、视频等数据存储到云盘进行备份。由于云盘中存储的数据多为用户的个人数据,因此需要提供一种技术方案能够对用户存储在云盘中的数据进行保密,放置用户存储的数据被泄露。

现有技术中,由网络服务提供商对云盘中存储的数据进行安全保密处理。例如,由网络服务提供商对云盘中存储的数据进行加密。此技术方案的问题在于,云盘中存储的数据的安全性依赖于网络服务提供商所采用的安全防御措施。如果网络服务提供商所采用的安全防御措施出现漏洞被恶意攻击,则云盘存储的用户数据可能会被泄露。



技术实现要素:

本发明的目的是提供一种数据加密及解密的方法和装置,能够解决上述技术问题,至少能够部分地解决上述技术问题。

为了实现上述目的,本发明提供一种数据加密的方法,该方法包括:从连接的终端设备接收将要上传到云盘的数据;使用密钥对接收的数据进行加密,将生成的密文进行分段,使用包括混前位置和对应混后位置的数据映射表对分段数据进行混淆,生成混淆密文;将混淆密文返回给连接的终端设备,使终端设备将所述混淆密文发送到云盘进行存储。

优选地,所述方法还包括:生成随机因子,根据所述随机因子获得所述数据映射表;使用密钥对随机因子进行加密,生成加密的随机因子;所述将混淆密文返回给连接的终端设备,使终端设备将所述混淆密文发送到云盘进行存储包括:将混淆密文和加密的随机因子返回给连接的终端设备,使终端设备将所述混淆密文和所述加密的随机因子发送到云盘进行存储。

优选地,所述方法还包括:当所述密钥的存在时长超过有效期时,将所述密钥更新为新密钥;通过连接的终端设备重新获得已经上传到云盘的原始数据;使用新密钥对已经上传到云盘的原始数据进行加密,使用数据映射表对加密后密文进行混淆,生成新的混淆密文;通过终端设备将新的混淆密文上传到云盘。

根据本发明的一方面,公开了一种数据解密的方法,该方法包括:从连接的终端设备接收从云盘下载的包括混淆密文的数据;根据加密时所用包括混前位置和对应混后位置的数据映射表将所述混淆密文还原成原始密文,使用加密时所用密钥将所述原始密文解密成原始数据;将解密出的原始数据返回给终端设备。

优选地,所述接收的从云盘下载的数据包括加密的随机因子;所述根据加密时所用包括混前位置和对应混后位置的数据映射表将所述混淆密文还原成原始密文包括:使用加密时所用密钥对接收的数据中加密的随机因子进行解密;根据所述随机因子获得所述数据映射表;利用所述数据映射表将混淆密文还原成原始密文。

优选地,所述方法还包括:在解密前,提示输入用于验证的密码;

接收到输入的密码后,使用所述密码进行验证,验证通过后开始进行解密。

根据本发明的一方面,公开了一种数据加密的装置,该装置包括:通信模块,用于从连接的终端设备接收将要上传到云盘的数据;加密模块,用于 使用密钥对接收的数据进行加密,将生成的密文进行分段,使用包括混前位置和对应混后位置的数据映射表对分段数据进行混淆,生成混淆密文;所述通信模块还用于将混淆密文返回给连接的终端设备,使终端设备将所述混淆密文发送到云盘进行存储。

优选地,所述加密模块用于生成随机因子,根据所述随机因子获得所述数据映射表;使用密钥对随机因子进行加密,生成加密的随机因子;所述通信模块用于将混淆密文和加密的随机因子返回给连接的终端设备,使终端设备将所述混淆密文和所述加密的随机因子发送到云盘进行存储。

优选地,所述装置还包括更新模块,所述更新模块用于当所述密钥的存在时长超过有效期时,将所述密钥更新为新密钥,利用所述通信模块通过连接的终端设备重新获得已经上传到云盘的原始数据;指示所述加密模块使用新密钥对已经上传到云盘的原始数据进行加密,使用数据映射表对加密后密文进行混淆,生成新的混淆密文;指示所述通信模块通过终端设备将新的混淆密文上传到云盘。

根据本发明的一方面,公开了一种数据解密的装置,所述装置包括:通信模块用于从连接的终端设备接收从云盘下载的包括混淆密文的数据;解密模块用于根据加密时所用包括混前位置和对应混后位置的数据映射表将所述混淆密文还原成原始密文,使用加密时所用密钥将所述原始密文解密成原始数据;所述通信模块还用于将解密出的原始数据返回给终端设备。

优选地,所述接收的从云盘下载的数据包括加密的随机因子;所述解密模块用于使用加密时所用密钥对接收的数据中加密的随机因子进行解密;根据所述随机因子获得所述数据映射表;利用所述数据映射表将混淆密文还原成原始密文。

优选地,所述装置还包括验证模块,用于在解密前,提示输入用于验证的密码;接收到输入的密码后,使用所述密码进行验证,验证通过后指示所 述解密模块开始进行解密。

通过上述技术方案,从连接的终端设备接收将要上传到云盘的数据,使用密钥对接收的数据进行加密,使用数据映射表对加密所得密文进行混淆,将混淆密文返回给连接的终端设备,以将混淆密文上传到云盘。如此,能够在用户所用终端处对将要上传到云盘的数据进行加密,使得用户能够独立于云盘进行加密,增加了用户数据的安全性;对加密后的密文进行混淆,进一步减少数据被破解的可能性;并且加密过程相对于用户透明,不会增加用户操作,提高了用户体验。另一方面,本发明还提供了与加密相对应的解密技术方案,能够对云盘中数据进行解密,方便用户获得云盘中数据。

本发明的其它特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。在附图中:

图1是根据本发明一实施例的数据加密的方法的流程图;

图2是根据本发明一实施例的密钥更新的方法的流程图;

图3是根据本发明一实施例的数据解密的方法的流程图;图4是根据本发明一实施例的应用场景的示意图;

图5是根据本发明一实施例的数据加密和解密的方法的流程图;

图6是根据本发明一实施例的数据加密的装置的结构图;

图7是根据本发明一实施例的数据加密的装置的结构图;

图8是根据本发明一实施例的数据解密的装置的结构图;以及

图9是根据本发明一实施例的数据解密的装置的结构图。

具体实施方式

以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。

图1是根据本发明一实施例的数据加密的方法的流程图,该方法可用于各种安全终端,例如加密终端、加解密终端等。如图1所示,该方法可包括如下步骤。

在步骤s110中,从连接的终端设备接收将要上传到云盘的数据。例如,以本发明中方法用于加解密终端为例,进行示例性说明。加解密终端可以通过usb接口(总线接口)、wifi(无限局域网)、或蓝牙等技术与终端设备连接。终端设备可为pc(个人电脑)、平板电脑、智能终端等。在终端设备的驱动中设置过滤器,过滤器将具有特征值的数据拦截后,将该数据发送给加解密终端。当终端设备要将数据上传到云盘时,将要上传给云盘的数据设置为具有该特征值。如此,加解密终端能够从终端设备获得将要上传到云盘的数据。

在步骤s120中,使用密钥对接收的数据进行加密,将生成的密文进行分段,使用包括混前位置和对应混后位置的数据映射表对分段数据进行混淆,生成混淆密文。在步骤s130中,将混淆密文返回给连接的终端设备,使终端设备将混淆密文发送到云盘进行存储。

在一实施例中,上述方法还可包括:生成随机因子,根据随机因子获得所述数据映射表;使用密钥对随机因子进行加密,生成加密的随机因子;所述将混淆密文返回给连接的终端设备,使终端设备将混淆密文发送到云盘进行存储包括:将混淆密文和加密的随机因子返回给连接的终端设备,使终端设备将所述混淆密文和所述加密的随机因子发送到云盘进行存储。在此实施例中,根据随机因子获得数据映射表,本发明中获得数据映射表的方法不限与此,也可以采用其他方法获得数据映射表。

举例而言,加解密终端可具有安全芯片、通信接口(例如usb接口)、密码键盘和led(发光二极管)屏幕。加解密终端可以在启动时,通过led屏幕提示用户输入预设的密码。用户可通过密码键盘输入密码。安全芯片判断输入的密码与预设密码是否匹配,当匹配时进行本发明中加密操作。通信接口从终端设备接收到数据后,将数据传输给安全芯片,安全芯片接收到数据,使用密钥对接收的数据进行加密。该密钥可以是在加解密终端第一次开启时,随机生成的密钥,也可以是预先设置的密钥。

安全芯片对加密所得密文进行分段,每个分段数据的大小为ik比特(例如i=1时,每个分段数据为1k比特),数据被分成n段,表示为e1,e2,……,en。安全芯片生成随机因子r,根据随机因子r获得包括混前位置a(n)和混后位置a’(n)的数据映射表。可以预先设置包括混前位置a(max)和混后位置a’(max)的映射表的集合,集合中每个映射表可以按扑克牌的洗牌方法生成,映射表中混前位置和混后位置的数量可以为预设最大值。随机因子根据预设规则取整,例如按四舍五入,来确定所选定的映射表。例如,集合中映射表的数量为100,随机因子的取值范围为0到100,如果随机因子的值为16.8,则第17个映射表为所选的映射表。上述映射表的生成方式仅为示例性举例,本发明中映射表生成方式不限于此。对于分段数据e1,e2,……,en,分别根据混前位置在数据映射表查找对应的混后位置,按对应的混后位置将各个分段数据排列,获得混淆密文。当上传的数据的分段数量n小于预设最大值max时,取映射表前n项映射关系对分段数据进行混淆。例如,分段数据的数量n为10,预设最大值max为100,取映射表前10项完成映射。分段数据的混后位置序号可能不连续,在此情况下按混后位置序号从小到大的顺序将分段数据排列,获得混淆密文。当上传的分段数据的数量n大于预设最大值max时,产生多个随机因子,获取多个映射表,将分段数据分成多个部分,各部分使用对应映射表进行混淆。

分段数据中最后一段可能不足ik比特,可以对所分n条分段数据的前n-1条分段数据进行混淆,最后一条分段数据不参加混淆。例如,根据随机因子获得混前位置a(n-1)和混后位置a’(n-1)的数据映射表。对于分段数据e1,e2,……,en-1分别根据混前位置在数据映射表查找对应的混后位置,按各个分段数据对应的混后位置将分段数据排列,将按混后位置排列所得密文和最后一条分段数据en组合,获得混淆密文。

本实施例中,能够在用户所用终端处对将要上传到云盘的数据进行加密,使得用户能够独立于云盘进行加密,增加了用户数据的安全性;对加密后的密文进行混淆,进一步减少数据被破解的可能性;并且加密过程相对于用户透明,不会增加用户操作,提高了用户体验。

图2是根据本发明一实施例的密钥更新的方法的流程图,如图2所示,可包括如下步骤。

在步骤s210中,当密钥的存在时长超过有效期时,将密钥更新为新密钥;在步骤s220中,通过连接的终端设备重新获得已经上传到云盘的原始数据;在步骤s230中,使用新密钥对已经上传到云盘的原始数据进行加密,使用数据映射表对加密后密文进行混淆,生成新的混淆密文;在步骤s240中,通过终端设备将新的混淆密文上传到云盘。

在一实施例中,所述通过连接的终端设备重新获得已经上传到云盘的原始数据包括:通过连接的终端设备从云盘获得上传的混淆密文;使用加密时所用密钥和混淆时所用数据映射表将混淆密文还原为原始数据。本发明中获得原始数据的方法不限与此,也可以采用其他方法获得原始数据,例如从终端设备中查找上传的原始数据,获取终端设备本地中存储的上传到云盘的原始数据。

举例而言,设置密钥的有效期,按有效期设置定时器,当定时器超时时,将密钥更新为新密钥。安全芯片通过通信接口向终端设备发送获得数据请求, 终端设备从云盘中获得已经上传的数据,并转发给加解密终端的通信接口。通信接口将数据传输给安全芯片。安全芯片将数据进行去混淆和解密后获得原始数据,然后使用新密钥对该原始数据进行加密,再对密文进行混淆得到混淆密文。通过通信接口将新的混淆密文发送给终端设备,由终端设备将新的混淆密文上传给云盘,将云盘中原有的混淆密文进行覆盖。

本实施例中,能够对密钥进行更新,进一步增加云盘中用户数据的安全性。

图3是根据本发明一实施例的数据解密的方法的流程图。如图3所示,该方法还可包括如下步骤。

在步骤s310中,从连接的终端设备接收从云盘下载的包括混淆密文的数据。举例而言,以本发明中方法用于加解密终端为例,进行示例性说明。加解密终端可以通过usb接口(总线接口)、wifi(无限局域网)、或蓝牙等技术与终端设备连接。终端设备可为pc(个人电脑)、平板电脑、智能终端等。在终端设备的驱动中设置过滤器,过滤器将具有特征值的数据拦截后,将该数据发送给加解密终端。当终端设备从云盘下载数据时,使下载的数据具有特征值。如此,加解密终端能够从终端设备获得从云盘下载的数据。

在步骤s320中,根据加密时所用包括混前位置和对应混后位置的数据映射表将混淆密文还原成原始密文,使用加密时所用密钥将原始密文解密成原始数据。在步骤s330中,将解密出的原始数据返回给终端设备。

在一实施例中,所述接收的从云盘下载的数据包括加密的随机因子;所述根据加密时所用包括混前位置和对应混后位置的数据映射表将所述混淆密文还原成原始密文包括:使用加密时所用密钥对接收的数据中加密的随机因子进行解密;根据随机因子获得数据映射表;利用数据映射表将混淆密文还原成原始密文。

所述方法还包括:在解密前,提示输入用于验证的密码;接收到输入的 密码后,使用所述密码进行验证,验证通过后开始进行解密。

举例而言,加解密终端可具有安全芯片、通信接口(例如usb接口)、密码键盘和led(发光二极管)屏幕。加解密终端的通信接口接收到终端设备从云盘下载的数据,数据中包括混淆密文和加密的随机因子。加解密终端可以在解密前,通过led屏幕提示用户输入预设的密码。用户可通过密码键盘输入密码。安全芯片判断输入的密码与预设密码是否匹配,当匹配时进行解密操作。通信接口将数据传输给安全芯片,安全芯片使用密钥解密加密的随机因子,获得随机因子r。安全芯片根据每个分段数据的大小(例如,为ik比特)和数据中混淆密文的大小确定混淆密文的分段数量。

在混淆时对所分出的n条分段数据都进行混淆的情况下,安全芯片根据随机因子r获得包括混前位置a(n)和混后位置a’(n)的数据映射表。获得原始密文中各个分段数据对应的混前位置和混后位置,按混后位置序号从小到大的顺序排序,得到混淆密文中各个分段数据对应的混前位置,据此生成反向映射表。例如,原始密文中分段数据的数量为5,数据映射表中包括10对混前位置和混后位置的映射。原始密文中分段数据1~5分别对应混后位置2、6、1、8、4。按混后位置序号从小到大的顺序排序,得到混淆密文中分段数据1~5对应的混前位置分别为3、1、5、2、4,由此生成包括混淆密文中分段数据对应混前位置的反向映射表。之后,安全芯片根据每个分段数据的大小和数据中混淆密文的大小可确定出最后一条分段数据的大小。按反向映射表将混淆密文分段,将分段数据放置到对应混前位置。如果对应混前位置为最后一条分段数据,则按确定的最后一条分段数据的大小进行分段,将分出的最后一条分段数据放置到最后位置。通过上述方法安全芯片获得去混淆后的密文,然后使用密钥对密文进行解密获得原始数据。

在混淆时对所分出的n条分段数据中前n-1条分段数据进行混淆的情况下,安全芯片根据随机因子r获得包括混前位置a(n-1)和混后位置a’(n-1) 的数据映射表。之后,安全芯片根据每个分段数据的大小将混淆密文分段。按映射表将混淆密文分段的前n-1段分段数据进行去混淆,去混淆所得数据和最后一条分段数据组合成去混淆的密文,然后使用密钥对密文进行解密获得原始数据。

本实施例中,能够在用户所用终端处对从云盘下载的数据进行解密,解密过程相对于用户透明,减少了用户操作负担,提高了用户体验。图4是根据本发明一实施例的应用场景的示意图,加解密终端可具有安全芯片、通信接口(例如usb接口)、密码键盘和led(发光二极管)屏幕。加解密终端可以在启动时,通过led屏幕提示用户输入预设的密码。用户可通过密码键盘输入密码。安全芯片判断输入的密码与预设密码是否匹配,当匹配时进行如下加密和解密操作。其中,通信接口为usb接口,与pc的usb通信接口连接,pc的网卡通过有线或无线网络与云盘连接。利用特征值使得pc的驱动中过滤器将要上传到云盘的数据和从云盘下载的数据拦截,通过通信接口将拦截的数据发送给加解密终端。加解密终端进行如下加解密操作。

在步骤s502中,加解密终端的通信接口从连接的pc的通信接口接收将要上传到云盘的数据,将数据传输给安全芯片。在步骤s504中,安全芯片使用密钥对接收的数据进行加密,将生成的密文进行分段。在步骤s506中,安全芯片生成随机因子,根据随机因子获得包括混前位置和对应混后位置的数据映射表。在步骤s508中,安全芯片使用数据映射表对分段数据进行混淆,生成混淆密文。在步骤s510中,安全芯片使用密钥对随机因子进行加密,将加密的随机因子添加到混淆密文之后生成上传数据。在步骤s512中,安全芯片将上传数据传输给通信接口,通信接口将上传数据返回给连接的终端设备,使终端设备将数据发送到云盘进行存储。在步骤s514中,通信接口从连接的pc的通信接口接收从云盘下载的数据,将数据传输给安全芯片。在步骤s516中,安全芯片从下载数据中解析出混淆密文和加密的随 机因子,使用密钥对加密的随机因子解密。在步骤s518中,安全芯片根据随机因子获得数据映射表。在步骤s520中,安全芯片利用数据映射表将混淆密文还原成原始密文。在步骤s522中,安全芯片使用密钥将原始密文解密成原始数据。在步骤s524中,安全芯片通过通信接口将解密出的原始数据返回给终端设备。

本实施例中,能够在用户所用终端处对将要上传到云盘的数据进行加密,使得用户能够独立于云盘进行加密,增加了用户数据的安全性;对加密后的密文进行混淆,进一步减少数据被破解的可能性;并且加密过程相对于用户透明,不会增加用户操作,提高了用户体验;能够在用户所用终端处对从云盘下载的数据进行解密,解密过程相对于用户透明,减少了用户操作负担,提高了用户体验。

图6是根据本发明一实施例的数据加密的装置的结构图。举例而言,该装置可用于安全终端的安全芯片中,如图6所示,该装置包括如下模块。

通信模块610,用于从连接的终端设备接收将要上传到云盘的数据;

加密模块620,用于使用密钥对接收的数据进行加密,将生成的密文进行分段,使用包括混前位置和对应混后位置的数据映射表对分段数据进行混淆,生成混淆密文;

所述通信模块610还用于将混淆密文返回给连接的终端设备,使终端设备将所述混淆密文发送到云盘进行存储。

举例而言,安全终端的通信接口与安全芯片中的通信模块间进行数据传输。通信接口接收到数据,将数据传输给装置的通信模块,由加密模块进行加密和混淆,通信模块将混淆密文传输给通信接口,通信接口将混淆密文发送给终端设备。

在一实施例中,加密模块620用于生成随机因子,根据所述随机因子获得所述数据映射表;使用密钥对随机因子进行加密,生成加密的随机因子; 通信模块610用于将混淆密文和加密的随机因子返回给连接的终端设备,使终端设备将所述混淆密文和所述加密的随机因子发送到云盘进行存储。

在一实施例中,如图7所示,所述装置还包括更新模块710。更新模块710用于当所述密钥的存在时长超过有效期时,将所述密钥更新为新密钥,利用通信模块610通过连接的终端设备重新获得已经上传到云盘的原始数据;指示加密模块620使用新密钥对已经上传到云盘的原始数据进行加密,使用数据映射表对加密后密文进行混淆,生成新的混淆密文;指示通信模块610通过终端设备将新的混淆密文上传到云盘。

进一步地,更新模块710用于指示通信模块610通过连接的终端设备从云盘获得上传的混淆密文;使用加密时所用密钥和混淆时所用数据映射表将混淆密文还原为原始数据。

图8所示,是根据本发明一实施例的数据解密的装置的结构图。装置包括:通信模块810用于从连接的终端设备接收从云盘下载的包括混淆密文的数据;解密模块820用于根据加密时所用包括混前位置和对应混后位置的数据映射表将所述混淆密文还原成原始密文,使用加密时所用密钥将所述原始密文解密成原始数据;通信模块810还用于将解密出的原始数据返回给终端设备。

进一步地,所述接收的从云盘下载的数据包括加密的随机因子;解密模块820用于使用所述密钥对接收的数据中加密的随机因子进行解密;根据所述随机因子获得所述数据映射表;利用数据映射表将混淆密文还原成原始密文。

在一实施例中,如图9所示,所述装置还包括验证模块910,用于在解密前,提示输入用于验证的密码;接收到输入的密码后,使用所述密码进行验证,验证通过后指示所述解密模块开始进行解密。

上述装置与前述方法对应,对于装置的详细描述请参见方法中对应部分, 在此不再赘述。

本发明中,能够在用户所用终端处对将要上传到云盘的数据进行加密,使得用户能够独立于云盘进行加密,增加了用户数据的安全性;对加密后的密文进行混淆,进一步减少数据被破解的可能性;并且加密过程相对于用户透明,不会增加用户操作,提高了用户体验;能够在用户所用终端处对从云盘下载的数据进行解密,解密过程相对于用户透明,减少了用户操作负担,提高了用户体验。另一方面,本发明还提供了与加密相对应的解密技术方案,能够对云盘中数据进行解密,方便用户获得云盘中数据。

以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。

此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。

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