论文部分内容阅读
随着个人数据的爆炸式增长,许多用户选择将个人数据存储在云端。这样,不同用户的数据在云端定会有铰链,而且数据是以明文的形式存储。不难发现,存储在云端的数据存在严重的安全性问题。目前,业界众多学者正在研究云端数据加密算法,而且这也是云存储领域中的一个热点问题。但是目前研究出来的云端数据加密算法存在两个问题。(i)数据加密过程中,需要消耗较长的时间;(ii)新型加密算法不成熟,加密效果不好。基于以上问题,本文设计一款带加密的个人云存储系统,保护云端数据的安全性。本系统使用Node.js的express框架实现,express框架是基于MVC设计模式实现的,便于隔离视图层、业务逻辑层和控制层。用户界面使用Extjs富客户端技术设计,有效提高用户体验。虚拟云端使用MongoDB数据库来模拟,使用mongoose模块定义集合的模式。本文的创新点在于使用非对称加密算法RSA和混淆技术相结合的方法用于用户登录认证,对于大文件数据上传采用固定分块技术,不同文件使用不同密钥加密,同一文件的不同分块使用不同密钥加密,从而提高文件的私密性。用户的密钥使用密钥池来管理,存储在密钥池中的密钥使用RSA算法加密,用户在加密文件块时使用密钥提取算法从密钥池中随机提取,并使用私钥解密得到明文密钥然后使用AES加密文件块。为了避免网络中断或系统故障造成上传或下载操作的中断,系统设计了断点续传和断点下载功能。由于个人图片的数据量极其庞大,本文系统使用混沌理论加密图片,并对混沌算法做了适当改进,在保证加密效果的同时提高加密速度。基于HTML5技术实现视频在线播放,且不受浏览器的限制。MongoDB的GridFS规范对数据具有自动切片功能,所以特别适合存储视频文件。而且使用GridFS规范存储的文件用户只能看到经过MD5哈希运算后的文件信息,因此具有一定的保密性。系统开发使用WebStorm集成环境,实现了个人文件、图片、视频等数据的加密保存。使用改进云端加密技术,在一定程度上解决了云存储的数据私密性问题。本文主要研究带加密的个人云存储系统,系统使用MVC设计模式,从而有效隔离用户视图层、业务逻辑层和控制层。从系统登录认证到各模块实现都进行了详细叙述,并给出各模块的实验结果图。