APP下载

一种基于硬件指纹的混合加密文件保护系统

2019-01-30

山东农业工程学院学报 2019年1期
关键词:加密算法U盘解密

(淮南师范学院,安徽 淮南 232038)

引言

随着计算机和互联网技术的快速发展与普及,每个人都在享受着科技进步带来的红利。但万事都有相反的一面,人们也深受信息安全问题的困扰[1,2]。比如,个人隐私信息的泄露、黑客的入侵等。因此,如何保护个人隐私已成为计算机领域研究的热点,人们迫切地需要一种技术来保护自己的信息不被他人非法的获取和访问。这时,信息加密技术就显得尤为重要,本文综合运用密码学原理设计了一个文件保护系统来实现对文件的加密和解密,从而解决实际生活、工作中的有关信息安全的问题。

1 密码学基础知识

1.1 3DES算法

对称密钥加密系统是一种传统密码体制,也称为私钥密码体制。在对称加密系统中,加密和解密采用相同的密钥。因为加解密密钥相同,需要通信的双方必须选择和保存他们共同的密钥,各方必须信任对方不会将密钥泄密出去,这样就可以实现数据的机密性和完整性。[1]

3DES又称Triple-DES,是一种典型的对称加密算法,它是DES加密算法的一种改进模式,它使用3条56位的密钥对数据进行三次加密[3]。假设Ek()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥,M代表明文,C代表密文,则其具体实现过程如下:

3DES加密过程为:C=Ek3(Dk2(Ek1(M)))

3DES解密过程为:M=Dk1(EK2(Dk3(C)))

K1、K2、K3决定了整个算法的安全性,若三个密钥互不相同,本质上就相当于用一个长为168位的密钥进行加密。若数据对安全性要求不那么高,K1可以等于K3,在这种情况下,密钥的有效长度为112位。

1.2 RSA算法

与对称密钥加密系统相对的是非对称密钥密码系统,也称公开密钥体制。在此加密系统中需要两个密钥,分别是公开密钥(public key)和私有密钥(private key)。相对于对称密钥密码体系,其最大的特点在于加密和解密使用不同的密钥。

RSA加密算法是一种非对称加密算法,它的密钥一般是成对生成,从加密密钥推导出解密密钥在计算上是不可行的。RSA算法的可靠性取决于对极大整数做因数分解的难度[4,5],到目前为止,世界上还没有任何可靠的攻击RSA算法的方式。只要其密钥的长度足够长,用RSA加密的信息实际上是不能被解破的。

假设Ek()和Dk()代表RSA算法的加密和解密过程,PK代表加密密钥,SK代表解密密钥,M代表明文,C代表密文,则其具体实现过程如下:

RSA加密过程为:C=Epk(M)

RSA解密过程为:M=Dsk(C)

1.3 MD5算法

MD5算法是一种特殊的单向散列函数,是一种可以将任意长度的消息压缩到某一固定长度输出的函数[6]。散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。MD5算法一般不用作加密,因为单向函数加密的信息不能进行解密,一般用于产生消息摘要配合其他算法一起使用[7,8]。

2 文件保护系统的设计原理

为了保证用户个人数据和隐私安全,人们利用各种技术手段在不同层面进行防护,在一定程度上防止了部分安全威胁。但是,即使在操作系统、数据库等层层防护之下,仍然无法保证数据的安全性,因为各种数据最终是以文件的形式存储在计算机介质上的,而大部分用户仍然可通过读写方式对文件进行相关操作。一旦网络不法分子通过某种途径进入计算机系统就可以直接读取各种数据文件,从而窃取用户数据和其他隐私信息。因此,如何保护数据文件的安全已经成为计算机领域研究的热点问题。对文件进行加密是一种有效且可行的保护用户隐私安全的方法,基于此,文章综合利用相关知识设计了一种文件保护系统。

首先,为了保护用户信息未经授权的加密和解密,系统采用了硬件指纹技术,即利用U盘序列码和U盘具体信息(如U盘大小、卷标等)的MD5值作为硬件指纹,唯一性的标识U盘,使U盘充当加密狗的功能,防止非法用户破坏用户信息的机密性和可用性。只有通过了硬件检查,才能进行后续操作。

其次,在进行信息加密时,采用了3DES对称加密技术,可以相对高效地完成数据文件的加密与解密操作,充分发挥了对称密码体制效率高的特点。3DES加密算法是一种分组加密算法,是以DES加密算法为基础进行的改进,在加密强度上比DES算法提高很多。

考虑到对称加密算法的密钥保存和分发容易受到黑客的攻击,系统又使用了RSA非对称加密算法对3DES算法的密钥进行了二次加密,并进行自动保存,进一步提高了安全性。RSA算法加密后的密钥再通过随机算法插入数量不等的字符,即使密钥文件被不法分子确定,也无法准确提取出正确的解密密钥。

最后,为了防止U盘和密码的丢失,增加了管理员权限,管理员登陆后可以自动解密文件。这样不仅达到了多重方法保护文件的目的,而且更加的人性化,促进了人与技术的和谐发展。

3 文件保护系统的设计过程

3.1 总体框架

系统是基于Windows环境下的可执行程序,通过Windows下图形界面窗口,提供用户交互操作。当用户需要加密或解密文件时,先插入系统预先设置的合法U盘,U盘与系统设定的信息匹配成功后方可进一步使用文件保护系统。同时系统设计了两类用户模式,分别为管理员模式和普通用户模式,各模式具有不同的操作权限。

在系统设计的过程中使用的关键技术有:密钥生成、密钥管理、加密服务、解密服务、散列算法等。当用户需要对数据文件进行加密时首先插入合法的U盘,通过检查后输入相应的加密密钥,这时会对密钥的长度和复杂度进行检测,只有达到相应规则的要求才能进行后续的加密操作,这就防止了用户的误操作和恶意用户的不当加密。具体的加密流程分别如下:

图1 文件加密流程

文件解密的过程也是要进行硬件检查,U盘不合法直接拒绝解密操作。当解密密钥是正常用户手动输入时,密钥正确则解密成功,否则解密失败;当用户忘记密码时可以启用管理员权限进行自动解密,程序会自动搜索RSA加密后的3DES密钥,并自动剔除通过随机算法加入的字符,完成相应数据文件的正常解密。具体的解密流程分别如下:

图2 文件加密流程

3.2 具体实现

系统开发以Microsoft Visual Studio2015为平台,采用C#语言实现软件编程,主要函数有:

voidEncryptFile(stringinFile,stringoutFile,string passwd),3DES加密函数,参数分别是待加密文件、加密后的文件和加密密钥;

voidDecryptFile(stringinFile,stringoutFile,string passwd),3DES解密函数,参数分别是待解密文件、解密后的文件和解密密钥;

string RSAEncrypt(string publickey,string content),RSA加密函数,参数分别是加密公钥和待加密文件;

string RSADecrypt(string privatekey,string content),RSA解密函数,参数分别是解密私钥和待解密文件;

RSAKeyPairGeneratorRSAKeys(int n),生成指定长度的RSA公钥私钥对;

stringGetDetailsFromUSB(),获取U盘序列码和其他基本信息充当硬件指纹;

string GetMD5FromString(string input),实现MD5加密,

string GetRandomNumOrCharacter(int n),获取 n个随机数字或字符。

3.3 功能测试

1)打开软件,主界面如下:

图3 文件保护系统主界面

2)未检测到U盘或U盘不合法,拒绝操作。

图4 加密时检测U盘合法性

3)硬件设备合法后,实现文件加密。

图5 实现文件加密

4)硬件检测不合法,拒绝解密。

图6 解密时检测U盘合法性

5)多次尝试破解密钥,会被禁止操作。

图7 防暴力破解

6)登录管理员账户,进行自动解密操作。

图8 管理员登录

7)管理员权限登陆后,可自动解密相应文件,防止密码丢失。

图9 自动解密功能

4 结论

利用普通U盘和业界上公认的经典加解密算法,实现了简单、安全、高效、灵活的文件保护系统。通过对U盘信息的读取,利用软件编程实现了软件与硬件的结合,只有通过了硬件合法性检测才能进行后续的文件加密和解密操作,提高了文件信息的保护强度。系统设计的优点:①基于硬件指纹,防止未经授权的加密和解密;②硬件指纹包含U盘序列码和U盘具体信息,稍作修改即可改变指纹,操作简单,实现了U盘的复用;③3DES对称加密速度快,RSA非对称算法对3DES密钥进行加密,综合了二者的优点,安全性高;④加密操作可以进行多轮,且每轮加密密钥不同可以提升安全等级;⑤增加了管理员权限,自动解密文件,防止密码遗失。

编辑:董刚

猜你喜欢

加密算法U盘解密
炫词解密
解密“一包三改”
炫词解密
采用U盘文件冗余方案实现TSP系统的可靠装载
自动辨认插口方向的U盘
基于整数矩阵乘法的图像加密算法
基于混沌系统和DNA编码的量子图像加密算法
混沌参数调制下RSA数据加密算法研究
基于小波变换和混沌映射的图像加密算法
U盘“闹肚子”