当前位置:文档之家› 文件加密系统设计与实现

文件加密系统设计与实现

文件加密系统设计与实现
文件加密系统设计与实现

文件加密系统设计与实现

摘要:该文论述了数据加密的原理与方法,介绍了几种常见的加密算法并在此基础之上比较了常用的加密算法的优缺点,在掌握了这几种算法的基础之上,对比对称密钥加密体制和公共密钥密码体制的优缺点以及前面的两个需求,最终利用DES算法和RSA算法来设计和实现自己的加密系统。该文详细的介绍了理论原理并详细记录了系统设计与实现过程。

关键词:密码学;DES算法;RSA算法;加密系统设计中图分类号:TP311文献标识码:A文章编号:

1009-3044(2011)14-3299-03

Design and Implementation of a Encrypting File System

LIN Pei-tong

(Guangdong Food and Drug Vocational Technical School, Guangzhou 510663, China)

Abstract: After mastery these types of algorithms, compared the advantages and disadvantages between the Symmetrical cryptograph and nonsymmetrical cryptograph, as well as consider the two demands in front, at last decide use DES algorithm and the RSA algorithm to design and realize my

encryption system. In this article, Detail the theoretical principles of Cryptographic and note the detailed of design and realize process..

Key words: cryptography; DES; RSA; design

1 绪言

随着Internet的发展人类已经步入信息时代,在信息时代,信息安全问题越来越重要。我们经常需要一种措施来保护我们的数据,防止被一些怀有不良用心的人所看到或者破坏。因此,在客观上就需要一种强有力的安全措施来保护机密数据不被窃取或篡改。解决这个问题的方式就是数据加密[1]。近年来,保护个人敏感数据成为人们关注的热点问题。使用加密技术是一种比较成功的保护方法。特别是在当今相互合作以及公共工作环境下,电脑中的资料可能对于写工作人员时可见的而对于另外一些工作人员是不可见的,对于一些文件进行加密是有必要的[2]。因此选择这个方面作为自己的论文研究方向,想通过对数据加密方法的研究对密码学有一个全面的认识,同时在研究过程中对当前已经比较成熟的加密算法进行学习并且总结和比较得出自己的结论并结合

需求分析选择几种常见的加密算法设计、实现一个自己的单机文件加密系统。

2 系统采用的关键技术

公开密钥密码系统一般是基于数学上难解的问题,所以

其安全性高,同时,密钥的管理比较容易。缺点是它的密钥太长、运算速度比对称算法的慢很多;公开密钥密码系统生成一对公私钥的速度比较慢,通常需要几分钟以上,从而对有大量用户的系统而言,服务器的工作效率不高[3]。

鉴于对称密钥密码算法和公开密钥密码算法的特点,综合使用DES对称密钥加密算法和RSA公开密钥加密算法来保障信息安全。大量数据用64bit密码长度的DES对称密码算法进行加密,而公开密钥密码算法则使用1024bit长度的RSA 公开密钥加密算法进行加密,此种方法既保证了数据信息的安全又提高了数据加密和解密的速度,实现了对数据信息安全、加密效率的要求[4]。

2.1 DES算法的实现过程

DES工作的基本原理是,其入口参数有三个:key、data、mode。其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。实际运用中,密钥只用到了64位中的56位,这样才具有高的安全性[4]。

DES算法是这样工作的:如Mode为加密,则用Key 去把数据Data进行加密,生成Data的密码形式(64位)作为DES的输出结果;如Mode为解密,则用Key去把密码形式的数据Data解密,还原为Data的明码形式(64位)作为

DES的输出结果[5]。

对于单机用户用于保存不需在网络中传递的文件则只

需要在加密的时候输入一个自己熟悉但相对来说比较复杂

不易被其他人破解的密码串就行,记住该密码串在解密的时候输入就行。

DES算法具有极高安全性,到目前为止,除了用穷举搜索法对DES算法进行攻击外,还没有发现更有效的办法。而56位长的密钥的穷举空间为256,这意味着如果一台计算机的速度是每一秒种检测一百万个密钥,则它搜索完全部密钥就需要将近2285年的时间,可见,这是难以实现的,当然,随着科学技术的发展,当出现超高速计算机后,我们可考虑把DES密钥的长度再增长一些,以此来达到更高的保密程度[6]。

2.2 RSA算法的实现过程

首先产生一对公钥和私钥:

(l) 选取两个大素数p和q(10到20个十进制数或更大),为了获得最大程度的安全性,两个数的长度最好相同。两个素数p和q必须保密。

(2) 计算p与q的乘积:n=p*q。

(3) 再由p和q计算另一个数Z,Z=(p-1)*(q-1)。

(4) 随机选取加密密钥e,使e和Z互素。

(5) 用欧几里德扩展算法计算解密密钥d,以满足e*d=l

mod (z)。

(6) 由此而得到的两组数(n ,e)和(n ,d)分别被称为公开密钥和私人密钥,简称公钥和私钥[7]。

其次是加密过程:RSA算法是一种分组加密算法,加密消息M时,首先将它分成比n小的数据分组(采用二进制数,选取小于n的2的最大次幂),也就是说,p和q为100位的素数,那么n将有200位,每个消息分组m,应小于200位长(如果需要加密固定的消息分组,那么可以在它的左边填充一些0并且保证该数比n小)。加密后的密文C,将由相同长度的分组组成。

由上述RSA算法可知:若n被因式分解,则RSA便可以被击破。因为n=p*q,如果p和q已知,那么Z=(p-1)*(q-1)便可以算出,故满足条件e*d=l mod (Z)的解密密钥d也不难求出。因此RSA的安全性完全依赖于大数的分解难度。RSA算法的公开密钥和私人密钥是一对大素数(10到20个十进制数或更大)的函数。从一个公开密钥和密文中恢复出明文的难度等价于分解两个大素数之积[8]。目前因子分解速度最快的方法,其时间复杂性为:exp (Sqrt(ln(n)lnln(n))).从技术上讲,这种安全性只是一种推测。

3 系统的设计与实现

根据需求分析,本系统的主要功能是保护存储在电脑的文件不被非法用户盗取后读取信息,面向用户主要是单机用

户以及多用户系统,不涉及到网络传输,结合对称密钥加密体制和公开密钥加密体制的优缺点。设计主要功能有:读取文件路径,利用DES算法对文本文件中的数据进行加密和解密,利用RSA算法将DES算法的密钥加密并保存即密钥导出功能;同时可以导入加密后的DES密钥文件对其解密后辅助完成利用DES算法对数据的解密。主要功能如图1所示。

与此同时考虑到加密后密钥的安全问题以及当前移

动存储介质的普遍使用,系统可以将保存加密后的DES密钥的文件导出到移动存储介质中,以便更好的保护密钥的安全同时也方便了用户对密钥的管理。在以前功能上有几点修改,将以前的导出功能改为保存,保存只是将加密后的密钥文件保存在当前文件夹下,新添加的导出功能是将加密后的密钥文件导出到移动存储器中;将导入功能改为加载,加载是将解密后的密钥读取到系统辅助数据的解密,新添加的导入是将保存在移动存储器中的加密后的密钥文件导入到系统。经过添加功能后系统的功能图如图2所示。

根据功能的不同将整个系统实现分为三个模块,分别为:MainFrame、DES、RSA。MainFrame的主要功能是显示系统

界面,对系统界面布局进行定位并且接收由DES和RSA模块传来的参数辅助完成文件加密和解密功能,在加密和解密过程中给用户提供交互界面并文成加密后密钥的保存和导出

及导入功能。DES的主要功能是接受由MainFrame传递过来

的参数,对指定文件的数据进行加密和解密。RSA的主要功能接受由MainFrame传递的参数对指定的DES密钥进行加密并保存,同时可以将加密后的DES密钥导出,一边以后辅助完成数据解密功能。

3.1 MainFrame模块设计

定义一个MainFrame类,主要是界面的初始化,同时在加密和解密过程中起到桥梁的作用,传递参数。同时所有的相应函数均封装在MainFrame类中,便以管理和界面的优化。界面的初始化及所有的响应按钮:public class Mainframe extends javax.swing.JFrame

主要响应按钮响应的函数如下:选择要加密或者解密的源文件,将文件路径传递DES对象并显示在文本框中,private void jButton1ActionPerformed() ;输入DES密钥,并弹出对话框确认:private void jButton2ActionPerformed() ;数据解密,通过调用DES对象中的加密函数对数据进行加密:private void jButton4ActionPerformed() ;数据加密,首先通过调用DES对象中的获取密钥函数得到密钥,然后调用解密函数对数据进行解密:

private void jButton3ActionPerformed()

生成RSA密钥对:

private void jButton6ActionPerformed()

用RSA算法对DES密钥进行加密并保存:

private void jButton7ActionPerformed()

将加密后的DES密钥文件导出到移动存储器中:

private void jButton14ActionPerformed()

将RSA私钥导出到移动存储器中:

private void jButton16ActionPerformed()

将经过加密并保存在电脑中的DES密钥解密并导入到加密系统:

private void jButton8ActionPerformed()

结束系统:

private void jButton9ActionPerformed()

3.2 DES模块设计

定义一个DES类,将参数和函数封装在DES类中。

public class DES

定义一个初始化函数和三个成员函数:

public void setKey(String s)//获得DES密钥

public void init()//对DES加密初始化,主要调用java系统函数

加密函数,source为要加密的文件的路径,result为加密后文件保存路径;因为在MainFrame模块中要对是否加密成功进行判断所以此函数要返回参数:

public String encryptorFile(String source, String result)加密函数设计框架图如图3所示。

解密函数,source为要解密的文件的路径,result为解密后文件保存路径;因为在MainFrame模块中要对是否解密成功进行判断所以此函数要返回参数:public String decryptorFile(String source, String result)解密函数设计框架图如图4所示。

3.3 RSA模块设计

定义一个RSA类,将主要参数和方法封装在RSA类中。public class :RSA定义三个成员函数:生成RSA的密钥和公钥并将私钥和公钥分别以dat文件形式保存在系统的当前文件夹中;因为在MainFrame模块中要对生成密钥是否成功进行判断所以此函数要返回参数;public String setkey(),密钥生成函数设计框架图如图5所示。

利用RSA公钥将传递进来的DES密钥进行加密并以dat 文件形式保存在系统的当前文件夹中,传递过来的密钥是String形式的,只能由数字和字母组成;因为在MainFrame 模块中要对是否加密成功进行判断所以此函数要返回参数;public String encryptorFile(String Dkey),加密函数设计框架图如图6所示。

利用RSA私钥对保存的加密后的DES密钥解密并传递给MainFrame类中的解密方法,实现密钥的导入功能,该方法中首先要读取RSA的私钥然后读取加密后的DES密钥文件;因为在MainFrame模块中要对是否解密成功进行判断所以此

函数要返回参数:public String decryptorFile();解密函数设计框架图如如7所示。

4 系统的开发环境及实现

系统的设计选择在java环境下。Java技术是与平台无关,是当今被各大软件公司可接受为最高级的面向对象设计语

言的主流技术;且Java安全API提供了加密、信息融合、密钥管理、认证、存取控制和数字签名等功能,允许开发者进行低层和高层的安全应用,而且在Java中,RSA密钥生成、RSA加密解密的功能实现十分简单,因为标准库中集成几乎所有功能,不需要从RSA算法出发进行编码。在j2se标准库中,javax.crypto中的Cipher类用于具体的加密和解密,java. security包直接提供了数字签名的相关方法。测试实例一,对txt文本文件进行加解密(密钥为000000)。

5 结束语

整体情况来说系统基本上达到预期的要求,能够对文本文件进行加密和解密并且方便公共环境下多用户系统对资

源的共享,同时方便用户对密钥的管理,为用户提供了一个操作简单、方便实用的加密系统。

参考文献:

[1] 卢开澄.计算机密码学[M].北京:清华大学出版

社,1998.

[2] 耿祥义.Java基础教程[M].北京:清华大学出版

社,2004.

[3] 徐迎晓.Java安全性编程实例[M].北京:清华大学出版社,2003.

[4] Daeman Rijmen.高级加密标准算法[M].谷大武,徐胜波,译.北京:清华大学出版社,2003.

[6] 赖溪松.计算机密码学及其应用[M].北京:国防工业出版社,2001.

[7] 钱乐秋.软件工程[M].北京:清华大学出版社,2007.

注:本文中所涉及到的图表、注解、公式等内容请以PDF 格式阅读原文

文件加密与解密—Java课程设计报告

JAVA课程设计题目:文件的加密与解密 姓名: 学号: 班级: 日期:

目录 一、设计思路 (3) 二、具体实现 (3) 三、运行调试与分析讨论 (8) 四、设计体会与小结 (11) 五、参考文献 (12) 六、附录 (12)

一、设计思路 自从Java技术出现以业,有关Java平台的安全性用由Java技术发展所引发的安全性问题,引起了越来越多的关注。目前,Java已经大量应用于各个领域,研究Java的安全性对于更好地利用Java具有深远的意义。使用Java的安全机制设计和实现安全系统更具有重要的应用价值。 本课程设计,主要实践Java安全中的JCE模块,包括密钥生成,Cipher对象初始化、加密模式、填充模式、底层算法参数传递,也涉及文件读写与对象输入输出流。 二、具体实现 本系统通过用户界面接收三个参数:明文文件、密文文件、口令。采用DES加密算法,密码分组链(Cipher Block Chaining,CBC)加密模式,PKCS#5-Padding的分组填充算法。因为CBC涉及到底层算法参数的解密密钥的传递,所以将明文文件中的字节块以密封对象(Sealed Object)的方式加密后,用对象流输出到密文文件,这样就将密文、算法参数、解密密钥三都密封到一个对象中了。口令的hash值作为产生密钥的参数。设计流程图如下所示: 文件加密与解密设计流程图

本系统中,包含Default,Shares,SecretKey,EncAndDec四个包共6个类组成。定义的几个参数:MAX_BUF_SIZE为每次从文件中读取的字节数,也是内存缓冲区的大小;加密算法为DES;加密模式是密码分组链(CBC)模式;分组填充方式是PKCS#5Padding。包和类结构图如下所示: 本课程设计,包和类结构图: 以下为包中的类的方法实现说明 Package Shares类结构图

数据库加密技术的要点分析

数据库加密技术的要点分析 最近两年,信息安全产业随着斯诺登事件的爆发,从国家战略高度得到重视,大量的数据安全泄密事件,让企业与用户对此关注也越来越高。安全攻击方法和策略在升级,传统的边界安全防御机制备受挑战,攻与防的较量之间,对决焦点直指泄密源——核心数据。对于一家组织机构的核心数据往往存于传统安全防护手段难以从根本防护的数据库存储层。入侵者或直接采取行动从外部入侵数据库主机,或利用职权之便从内部窃取数据,从而将不设防或边界网关设防的数据库存储数据整库窃走。这种对于窃取者而言屡试不爽行为的方式背后,围绕数据库安全的行之有效的加密保护技术呼之欲出,从根本拯救数据库安全。。 对数据库存储层核心数据进行加密,可以解决库内明文存储引发的信息泄露风险,也能解决数据库高权限用户不受控制的现状。但是数据库加密这项技术要想形成真正让用户既安全又安心的产品,以下几个核心技术是用户选择该类产品的关键。 数据库列级加密策略配置 在敏感系统的后台数据库中,真正需要加密存储的内容其实占据整个数据库信息的少部分,如用户身份认证信息,账户资金等,成熟的数据库加密技术可以将加密粒度控制在列级,只选择最核心列的内容进行加密,既能保证核心数据的安全性,又能避免整库加密方式造成的严重性能损耗。现在市场上比较成熟的数据库加密产品,如安华金和的数据库保险箱(DBCoffer)即采用以列为单位进行数据库加解密的技术,能全面应对如number、varchar、date、lob等数据类型,做到用较小的代价保护用户最核心的敏感数据。

数据库运维三权分立 有些数据库自身具有加密模块,如Oracle数据库。但是这些模块的配置和权限掌握在DBA手中,这对于用户来说就像只锁上保险柜而不管理钥匙,从根本上无法解决内部高权限用户进行主动窃取数据或者误操作批量删除、修改数据,从而引发数据库安全问题。安华金和数据库保险箱(DBCoffer)引入安全管理员和审计管理员,与数据库管理员DBA多个身份账户,并对数据库加密列的访问权限进行有效管控,,三个角色之间相互协作,各司其责,确保数据库核心数据的使用根本上安全合规。 数据库透明加解密 如果说应用防火墙或者堡垒机等传统安全产品对数据库的防护是药物治疗的话,那么对数据库存储层进行加密无异于给数据库做了一台精密手术。大动筋骨”后加密存储的数据库内数据存储安全性自然得到了提升。但是如果“术“后将会对用户的行动产生影响,即用户访问数据库内数据方式产生影响,需要应用的SQ L语句做出针对性调整,或者使用特殊的API连接数据库,甚至使运维侧的数据迁移等脚本全部重写,这说明医生的医术并不精湛,反而给患者留下后遗症。成熟的数据库加密产品,不仅能够对数据库提供安全防护,同时还会将数据加密后对数据库使用方面的性能影响降至最低,不影响用户的正常使用。在透明性这点上,安华金和的数据库保险箱(DBCoffer)拥有自主研发的国家级专利技术,通过数据库多级透明视图技术,保障数据加密后应用程序无需改造,运维侧无需改造,依然可以做到不影响到数据库的各项依赖和函数关系,不影响到数据库的高端特性如RAC等,让用户能够毫不费力的享受数据安全。

加密解密课程设计

兰州商学院陇桥学院工学系课程设计报告 课程名称: Java 设计题目:加密与解密 系别:工学系 专业 (方向):信息管理与信息系统 年级、班:2012级(2)班 学生姓名:费亚芬 学生学号: 208

指导教师:张鑫 2014年7 月 1日 目录 一、系统开发的背景................................. 错误!未定义书签。 二、系统分析与设计................................. 错误!未定义书签。(一)............................................. 系统功能要求错误!未定义书签。(二)......................................... 系统模块结构设计错误!未定义书签。 三、系统的设计与实现............................... 错误!未定义书签。(一)图形用户界面模块 ........................... 错误!未定义书签。(二)加密操作模块 ............................... 错误!未定义书签。 (三)解密操作模块................................ 错误!未定义书签。(四)文件保存模块 ............................... 错误!未定义书签。

(五)文件选择模块 ............................... 错误!未定义书签。 四、系统测试....................................... 错误!未定义书签。(一)测试加密..................................... 错误!未定义书签。(二)测试选择加密文件............................. 错误!未定义书签。(三)测试生成加密文件............................. 错误!未定义书签。(四)测试浏览加密文件............................. 错误!未定义书签。(五)测试解密文件................................. 错误!未定义书签。 五、总结........................................... 错误!未定义书签。 六、附件(代码、部分图表) ......................... 错误!未定义书签。

java文件加密解密课程设计

软件学院 课程设计报告书 课程名称面向对象程序设计 设计题目文本文档的加密与解密 专业班级财升本12-1班 学号 1220970120 姓名王微微 指导教师徐娇月 2013年 1 月

1 设计时间 2013年1月14日-2013年1月18日 2 设计目的 面向对象程序设计是一门实践性很强的计算机专业基础课程。通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。 3 设计任务 对文件进行加密解密 4 设计内容 4.1 需求分析 (1)给定任意一个文本文件,进行加密,生成另一个文件。 (2)对加密后的文件还原。 4.2 总体设计 4.2.1 包的描述 导入了java.awt; java.awt.event; java.io; javax.swing等包。 4.2.2 类的描述 Myframe类;E1类。其中Myframe类继承Frame类;可以扩展Frame的功能并且可以实例化的多种功能,这个类也实现了ActionListener这个接口,它是Java中关于事件处理的一个接口,ActionListener用于接收操作事件的侦听器接口。对处理操作事件感兴趣的类可以实现此接口,而使用该类创建的对象可使用组件的addActionListener 方法向该组件注册。在发生操作事件时,调用该对象的actionPerformed 方法。 4.3 页面设计

图4.3-1 显示页面 代码实现: addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } });

密码学课程方案AES加密解密文档

个人资料整理仅限学习使用 成都信息工程学院课程设计报告 AES加密解密的实现 课程名称:应用密码算法程序设计 学生姓名: 学生学号: 专业班级: 任课教师: 年月日

个人资料整理仅限学习使用 附件:课程设计成绩评价表

个人资料整理仅限学习使用目录

1.背景 AES,密码学中的高级加密标准

数据库加密系统技术白皮书

数据库加密存取及强权限控制系统 技术白皮书 Oracle版

目录 1.产品背景 (1) 2.解决的问题 (3) 3.系统结构 (6) 4.部署方案 (7) 5.功能与特点 (9) 6.支持特性 (10) 7.性能测试数据 (11)

1.产品背景 随着计算机技术的飞速发展,数据库的应用十分广泛,深入到各个领域。数据库系统作为信息的聚集体,是计算机信息系统的核心部件,其安全性至关重要。小则关系到企业兴衰、大则关系到国家安全。 在重要单位或者大型企业中,涉及大量的敏感信息。比如行政涉密文件,领导批示、公文、视频和图片,或者企业的商业机密、设计图纸等。为了保障这些敏感电子文件的安全,各单位广泛的实施了安全防护措施,包括:机房安全、物理隔离、防火墙、入侵检测、加密传输、身份认证等等。但是数据库的安全问题却一直让管理员束手无策。原因是目前市场上缺乏有效的数据库安全增强产品。 数据库及其应用系统普遍存在一些安全隐患。其中比较严峻的几个方面表现在: (1)由于国外对高技术出口和安全产品出口的法律限制,国内市场上只能购买到C2安全级别的数据库安全系统。该类系统只有最基本的安全防护能力。并且采用自主访问控制(DAC)模式,DBA角色能拥有至高的权限,权限可以不受限制的传播。这就使得获取DBA角色的权限成为攻击者的目标。而一旦攻击者获得DBA角色的权限,数据库将对其彻底暴露,毫无任何安全性可言。 (2)由于DBA拥有至高无上的权利,其可以在不被人察觉的情况下查看和修改任何数据(包括敏感数据)。因此DBA掌控着数据库中数据安全命脉,DBA的任何操作、行为无法在技术上实施监管。而DBA往往只是数据的技术上的维护者,甚至可能是数据库厂商的服务人员,并没有对敏感数据的查看和控制权。现阶段并没有很好的技术手段来约束DBA 对数据的访问权限,因此存在巨大安全隐患,特别是在DBA权限被非法获取的情况下,更是无法保证数据的安全。 (3)由于C2级的商业数据库对用户的访问权限的限制是在表级别的。一旦用户拥有了一个表的访问权限,那么表中的任何数据都具有访 1

加密技术及密码破解实验报告

第九章、实验报告 实验一、设置Windows启动密码 一、实验目的:利用Windows启动密码保存重要文件。 二、实验步骤: 1、在Windows XP系统中选择开始——运行,在打开输入框中“syskey.exe”,点击确定,打开“保证Windows XP账户数据库的安全”对话框。 2、单击【更新】,打开【启动密码】对话框,然后输入密码,在【确认】文本框中再次输入密码,单击【确定】

实验二、为word文档加密解密 一、实验目的:保护数据的安全 二、实验步骤: 1、打开一个需要加密的文档,选择【工具】——【选项】——【安全性】然后输入想要设置打开文件时所需的密码 2、单击【高级(A)】打开加密类型对话框,选中【加密文档属性】复选框,单击【确定】。

3、打开文件的【确认密码】对话框,输入打开文件时需要的密码,单击【确定】,随即打开【确认密码】对话框,输入密码。 4、保存文件后,重新打开Word文档,打开【密码】,输入打开文件所需的密码,单击【确定】输入修改的密码,单击【确定】 破解word密码 (1)安装Advanced Office Password Recovery软件,安装完成后打开需要破解的word 文档,进行暴力破解,结果如图所示: 实验三、使用WinRAR加密解密文件

一.实验目的:加密文件,保证文件的安全性。 二.实验步骤: 1、在需要加密的文件夹上右击,选中【添加到压缩文件】打开【压缩文件名和参数】 2、选中【压缩文件格式】组合框中的【RAR】并在【压缩选项】中选中【压缩后删除源文件】然后切换到【高级】,输入密码,确认密码。 3、关闭对话框,单击确定,压缩完成后,双击压缩文件,系统打开【输入密码对话框】 破解WinRAR加密的文件 (1)安装Advanced RAR Password Recovery软件,打开WinRAR加密文件,进行暴力破解,获得密码。结果如图:

文件加密系统课程设计

仲恺农业工程学院课程设计 文件加密 姓名孙浩斌 院(系)信息科学与技术学院 专业年级计算机132 学号 指导教师罗慧慧 职称学生 起止时间2015-6-15至2015-6-24 仲恺农业工程学院教务处制 目录

一.课程设计目的和要求 设计目的 有时我们有些资料不希望别人看到,最常用的方法就是加密。对给定的相关文件进行加密可以对文件进行保护,可以防止某些重要信息不被别人所知道甚至窃取。对文件起到保护作用,可以方便用户使用某些只有自己能知道的信息,能够安全保护文件的相关内容几信息不被外流。随着信息社会的到来,人们在享受信息资源所带来的巨大的利益的同时,也面临着信息安全的严峻考验。信息安全已经成为世界性的现实问题,信息安全问题已威胁到国家的政治、经济、军事、文化、意识形态等领域,同时,信息安全问题也是人们能否保护自己的个人隐私的关键。信息安全是社会稳定安全的必要前提条件。通过课程设计,使学生了解高级程序设计语言的结构,逐渐培养学生的编程能力、用计算机解决实际问题的能力,掌握基本的程序设计过程和技巧,掌握基本的分析问题和利用计算机求解问题的能力,具备初步的高级语言程序设计能力。为后续各门计算机课程的学习和毕业设计打下坚实基础。 程序设计的主要任务是要求学生遵循软件开发过程的基本规范,运用结构化程序设计的方法,按照课程设计的题目要求,分析、设计、编写、调试和测试程序及编写设计报告。

本课程设计的目标: 1. 巩固《高级语言程序设计》课程学习的内容和加深学生对基本知识的理解和掌握。 2. 掌握编程和程序调试的基本技能。 3. 掌握软件设计的方法。 4. 提高运用程序设计解决实际问题的能力。 5. 培养独立思考、综合运用所学有关相应知识的能力。 6. 强化上机动手编程能力,闯过理论与实践相结合的难关! 设计要求 1. 分析课程设计题目的要求,根据所要求的程序功能,画出程序的流程图。 2.对系统功能模块进行分析,写出详细设计说明文档。 3.对程序源代码进行调试与测试,使其能正确运行。 4.设计完成的软件要便于操作和使用。 5.设计完成后提交课程设计报告。 设计意义 至今,密码技术是取得信息安全性最有效的一种方法, 密码技术是信息安全的核心技术。通过数据加密,人们可以有效地保证通信线路上的内容不被泄露,而且还可以检验传送信息的完整性。进一步,密码技术可以应用于数字签名、身份认证和信息鉴定,这些应用对于资源存取控制以及其它安全措施是必须而且有效的。相对于防病毒软件和防火墙软件来说,基于密码技术密码类产品、认证类产品份额相对较小,但随着金融、电信、政府等行业信息化建设对于网络安全整体解决方案需求的增加,将会有较大的增长。

加密技术在数据库加密中的应用

加密技术及其在数据库加密中的应用 摘要:数据库系统作为信息系统的核心,其安全直接影响信息系统的安全。本文简要介绍了加密技术的概念及主要方法,针对数据库系统的特点和安全问题提出数据库系统加密的策略,并对数据库系统加密的相关技术进行了阐述。最后讨论了数据库加密技术存在的局限性。 关键字:加密技术数据库系统安全 1、引言 随着因特网的普及和计算机技术的飞速发展,各行各业的信息化程度得到了显著的提高。信息系统已经成为企业、金融机构、政府及国防等部门现代化的重要标志。如何保证现代信息系统的安全是计算机领域面临的一大挑战。数据库系统作为信息的聚集体是信息系统的核心,其安全性对整个信息系统来说至关重要,数据库加密技术成为保障数据库系统安全的基石。 2、加密技术 加密技术主要是为了能够有效地保护数据的安全性,下面简单介绍加密技术的概念及主要算法。

2、1加密的概念 数据加密的基本过程就是对原来为明文的文件多数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才恩能够显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。该过程的逆过程为解密,即将该编码信息转化成为其原来数据的过程。 2、2数据加密的原理 数据加密就是把数据信息即明文转换为不可辨识的形式即密文的过程,目的是使不应了解该数据信息的人不能够知道和识别。将密文转变为明文的过程(如图1所示)就是解密。加密和解密过程形成加密系统,明文与密文统称为报文。任何加密系统通常都包括如下4个部分: (1)需要加密的报文,也称为明文P。 (2)加密以后形成的报文,也称为密文Y。 (3)加密(解密)算法E(D)。 (4)用于加密和解密的钥匙,称为密钥K。 加密过程可描述为:在发送端利用加密算法E和加密密钥Ke对明文P进行加密,得到密文Y=EKe(P)。密文Y被传送到接收端后应进行解密。解密过程可描述为:接收端利用解密算法D 和解密密钥Kd对密文Y进行解密,将密文恢复为明文P=DKd(Y)。在密码学中,把设计密码的技术称为密码编码.把

DES加密解密课程设计报告

D E S加密解密课程设计报 告 Prepared on 22 November 2020

成都信息工程学院课程设计报告 DES算法加密与解密的设计与实现课程名称:密码算法程序设计 学生姓名: 学生学号: 专业班级: 任课教师: XX年 XX 月 XX 日

目录

1背景 DES算法概述 DES(Data Encryption Standard)是由美国IBM公司于20世纪70年代中期的一个密码算(LUCIFER)发展而来,在1977年1月15日,美国国家标准局正式公布实施,并得到了ISO的认可,在过去的20多年时间里,DES被广泛应用于美国联邦和各种商业信息的保密工作中,经受住了各种密码分析和攻击,有很好的安全性。然而,目前DES算法已经被更为安全的Rijndael算法取代,但是DES加密算法还没有被彻底的破解掉,仍是目前使用最为普遍的对称密码算法。所以对DES的研究还有很大价值,在国内DES算法在POS、ATM、磁卡及智能卡(IC卡)、加油站、高速公路收费站等领域被广泛应用,以此来实现关键的数据保密,如信用卡持卡人的PIN 码加密传输,IC卡与POS机之间的双向认证、金融交易数据包的MAC校验等,均用到DES算法。 DES算法是一种采用传统的代替和置换操作加密的分组密码,明文以64比特为分组,密钥长度为64比特,有效密钥长度是56比特,其中加密密钥有8比特是奇偶校验,DES的加密和解密用的是同一算法,它的安全性依赖于所用的密钥。它首先把需要加密的明文划分为每64比特的二进制的数据块,用56比特有效密钥对64比特二进制数据块进行加密,每次加密可对64比特的明文输入进行16轮的替换和移位后,输出完全不同的64比特密文数据。由于DES算法仅使用最大为64比特的标准算法和逻辑运算,运算速

数据库加密方法有哪些

常见的数据库加密技术分析 如果我们要从根本上解决这种超出网络保护范围的“内部幽灵”攻击模式,则会绕过电源控制系统,直接复制文件块并还原并在不同位置进行分析,我们必须采用存储层的加密技术,以确保一旦丢失敏感信息,就必须以密文形式对其进行存储。随着国内市场上数据库加密技术的兴起以及越来越多的数据安全企业的涌入,市场上出现了几种具有代表性的数据库加密技术。 一,预代理和加密网关技术 1)技术原理 该方案的一般技术思想是在数据库之前添加安全代理服务,并且所有访问数据库的用户都必须通过安全代理服务,并在该服务中实施安全策略,例如数据加密和解密以及访问控制。然后,安全代理服务通过数据库的访问接口实现数据存储。安全代理服务存在于客户端应用程序和数据库存储引擎之间,后者负责数据的加密和解密,并且加密的数据存储在安全代理服务中。 2)优缺点分析:预代理和代理网关加密技术无法克服“障碍”

①由于加密的数据需要存储在安全性增强代理中,因此基本上不可能解决数据库中存储的数据的一致性问题。 ②数据的联合检索:由于数据库内部和外部都有数据,因此联合检索这些数据将变得非常困难;完全兼容SQL语法也非常困难。 ③开发不透明的问题:尽管存在数据库协议的标准,但实际上,每个不同的数据库版本都会进行一些更改,扩展和增强,并且使用这些功能的用户必须进行改进。同时,很难在安全代理中模拟数据库通信协议。 ④无法使用数据库的优化处理,事务处理,并发处理和其他特性:查询分析,优化处理,事务处理和并发处理都需要在安全增强器中完成,并且数据库在并发处理中的优势并且无法使用查询优化。系统的性能和稳定性更多地取决于安全代理。 ⑤支持存储过程的执行也非常困难,例如存储过程,触发器和功能。 另外,该方案需要在安全代理服务层中提供非常复杂的数据库管理功能,例如SQL命令解析,通信服务,加密数据索引存储管理,事务管理等,因此存在巨大的开发工作量和很高的开发成本。技术复杂性,还有诸如存储过程和触发器之类的技术问题无法解决。

c语言课程设计-文件加密解密(含源代码)

C 语 言 课 程 设 计 实 验 报 告 实验名称:文件加密解密 院系:软件学院 学号: 日期:2012年9月3日—9月17日

一:设计题目 1:设计图形用户界面。 2:对文件进行加密并对加密文件进行保存。 3:对加密了的文件进行解密。 二:设计过程 设计过程中遇到的困难和解决方法: 1:不能很好地理解题意(通过老师的讲解)。 2:不知道如何设计加密解密程序(通过翻阅书籍和上网查找资料) 过程: 首先通过学习老师提供的资料了解大致的设计过程并懂得运用一些以前没有学习过的c语言。先利用文本文件设计出加密解密的主要过程并能运行。知道如何运用fopen将原文件打开并用fread将原文件内容读出来,然后进行加密设计并将加密的数据用fwrite写进指定的文件中并保存。然后读出加密的文件并解密并保存。最后在写出的程序中加入图形用户界面,运用window,box,gotoxy等进行设计。 三:源代码 #include /* 标准输入、输出函数 */ #include /* 标准库函数 */ #include //*字符串处理函数 */ #include /* 字符操作函数 */ #include #include #define key_down 80 #define key_up 72

#define key_esc 1 #define key_enter 28 #define SIZE 1 void box(int startx,int starty,int high,int width); int get_key(); char buf[20*20*4]; /*///////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////加密解密 */ void fun(char *list,char *sd) /*加密过程*/ { FILE *fp1,*fp2; char buf[1000]; /*文件临时存放处*/ register int ch; fp1=fopen("e:\list.txt","r"); /*用可读方式打开文件*/ fp2=fopen("e:\sd.txt","w"); /*用可写方式创建一个文件*/ if(fp1==NULL) { printf("cannot open file\n"); exit(1); } if(fp2==NULL) { printf("cannot build file\n"); exit(1); } ch=fgetc(fp1); /*读出打开文件的光标处的一个字符*/ while(!feof(fp1)) /*读出的字符不是最后的字符*/ { ch=ch<<1; /*加密方法*/ fputc(ch,fp2); /*加密的字符存放在指定的地方*/ ch=fgetc(fp1); } rewind(fp2); /*将光标移动到第一个字符前面*/ fread(buf,sizeof(buf),1,fp2); /*从文件的当前位置开始中读取buf中存放的数据*/ printf("%s",buf); /*fclose(fp1); fclose(fp2); */ }

数据库加密技术研究

数据库加密技术研究 Research of Database Secreted Technology 黄非 Huang Fei (江西省科技情报研究所,江西南昌330046) (Jiangxi Science&Technology Information Research Institute,Jiangxi Nanchang330046) 摘要:信息安全的核心就是数据库的安全,也就是说数据库加密是信息安全的核心问题。数据库数据的安全问题越来越受到重视,数据库加密技术的应用极大地解决了数据库中数据的安全问题。本文主要就数据库加密技术方法和实现进行简要地概述。 关键词:数据库;加密;算法;系统;密钥 中图分类号:TP311.13文献标识码:A文章编号:1671-4792-(2008)10-0099-02 Abstract:The core information security is database.database secreted technology is the core problem of Information security. Database data security problem will become important.database secreted technology solutes Database data security problem.This text mainly tell database,database methods and realization of secreted technology. Keywords:Database;Secreted;Algorithm;System;Key Enciyption 0引言 随着网络技术的不断发展及信息处理的不断增多,巨量级数据扑面而来。无论对于银行、电力、统计局、保险公司,还是其它一些数字、数据密集型企业来说,数据的重要性日益凸现,从而使数据安全问题变得非常显著。因此,如何有效地保证数据库系统的安全,实现数据的保密性、完整性和有效性,已经成为目前关注的一个话题。因此,要想提高数据库数据及服务器文件的安全性,数据库加密及文件加密策略应是最佳选择,它们也是网络安全的最终解决方案。 1数据库加密的特点 对数据库中数据加密是为增强普通关系数据库管理系统的安全性,提供一个安全适用的数据库加密平台,对数据库存储的内容实施有效保护。它通过数据库存储加密等安全方法实现了数据库数据存储保密和完整性要求,使得数据库以密文方式存储并在密态方式下工作,确保了数据安全。 一般而言,一个行之有效的数据库加密技术主要有以下6个方面的功能和特性: (1)身份认证 用户除提供用户名、口令外,还必须按照系统安全要求提供其它相关安全凭证,如使用终端密钥等。 (2)通信加密与完整性保护 有关数据库的访问在网络传输中都被加密,通信一次一密的意义在于防重放、防篡改。 (3)数据库数据存储加密与完整性保护 数据库系统采用数据项级存储加密,即数据库中不同的 记录、每条记录的不同字段都采用不同的密钥加密,辅以校 验措施来保证数据库数据存储的保密性和完整性,防止数据 的非授权访问和修改。 (4)数据库加密设置 系统中可以选择需要加密的数据库列,以便于用户选择 那些敏感信息进行加密而不是全部数据都加密。只对用户的 敏感数据加密可以提高数据库访问速度,有利于用户在效率 与安全性之间进行自主选择。 (5)多级密钥管理模式 主密钥和主密钥变量保存在安全区域,二级密钥受主密 钥变量加密保护,数据加密的密钥存储或传输时利用二级密 钥加密保护,使用时受主密钥保护。 (6)安全备份 系统提供数据库明文备份功能和密钥备份功能。 2数据库密码 应用于数据库加密的加密算法称为数据库密码。目前常 用的加密算法可分为三类: 2.1序列密码体制 这种密码直接对当前的字符进行变换,也就是说,以一 个字符为单位进行加密变换。在这种加密体制中,每一字符 数据的加密与报文的其它部分无关。例如,直接对明文加上 一串同等长度的乱码(也可看成是密钥),只要所用的乱码是 随机数且不重复使用,就实现了“一次一密”的加密。从理论 数 据 库 加 密 技 术 研 究 99

java文件加密课程设计

结业报告 课程名称:网络安全技术 设计题目:java实现文件加密 系别:***学院 专业:*************** 组员:**************************起止日期***************** 指导教师:***

摘要 目前世界范围内的信息安全问题越来越严重。解决信息安全问题涉及面很广,它包括技术,管理.制度,人员和法律等诸多方面,但最核心部分是密码技术。密码技术是实现一种变换,它使得对大量信息的保护变为对少量密钥的保护。 本次结业设计以文件的加密与解密问题为主要研究讨论方向。先对加密技术进行查找资料。然后对加密方法进行概述,而后对3DES加密进行详细介绍何分析,并对结业设计成果进行演示,最后附上代码。由于本次结业设计时间仓促外加能力有限,有诸多不足之处以及可能存在某些为发现错误还请批评指正。感谢之至。 关键词:加密解密密钥 3DES Abstract At present, the problem of information security is more and more serious in the world. To solve the problem of information security involves a wide range, including technology, management, system, personnel and law, etc., but the most important part is the password technology. Password technology is to achieve a transformation, which makes the protection of a large number of information into a small number of key protection. The graduation project to document encryption and decryption issues as the main research and discussion. First, the encryption technology to find information. Then the encryption method is outlined, and then the 3DES encryption for detailed analysis, and the completion of the design results are demonstrated, and finally attached to the code. Due to the limited capacity of the completion of this graduation project, there are many deficiencies and there may be some to find errors also please criticism. Thanks to.

数据库加密综述

数据库加密综述 石磊 摘要数据库加密是利用现有的数据库和加密技术,来研究如何对数据库中的数据加、解密,从而提高数据库系统的安全。数据库加密可以在OS、DBMS内层、DBMS外层上实现。OS层上的数据库加密由于存在太多的问题和缺陷,已经不被人们考虑。已有的数据库加密产品都是在DBMS外层实现的,这种实现方式虽说做到了数据和密钥的分离,可以有效地抵御外部的非法入侵,但对企业内部的攻击却没有很好的防范措施;另外,这种方式还存在着:使数据和应用程序紧密结合起来、在DBMS之外又增加了其他的数据管理工具、硬盘存储空间浪费大等缺陷。其实,数据的加密与否只是数据的一个属性,数据的加密存储是数据的一种保存方式,关乎数据的物理存储,这些都是DBMS现有功能的一部分。另外从数据和应用程序的分离、数据的维护和安全来看,数据库加密都应当在DBMS内实现。本文就是基于关系DBMS,介绍一种数据库加密的实现方法。 1 引言 随着网络应用的不断发展,信息成为社会发展需要的重要战略资源。围绕信息的获取、使用和控制的竞争愈演愈烈,信息安全成为在激烈竞争中立于不败之地的重要保障。调查显示,我国互联网安全状况有所好转,但互联网用户的网络安全意识仍比较薄弱,对发生网络安全事件未给予足够重视,联网单位对外部网络攻击防范的意识有所增强,但单位内部的网络安全管理工作还不到位。 数据库作为信息存储中心,其安全问题尤为突出。一方面,企业为了本身的利益,需要对其敏感信息进行保护而不让外界获取;另一方面,在数据库作为服务DAS(Database As Service)的数据管理模型下,企业需要从数据库服务提供商DSP(Database Service Provider)处获得专业的数据库服务。这种情况之下,企业的数据存放在数据库服务提供商处,其完全性无法得到有效的保障。因为如果数据库只使用访问控制来限制数据访问的话,数据库提供商处的数据库管理员(DBA)就可能会有意或无意访问到企业的所有数据,从而给企业造成巨大损失。 对于这种“监守自盗”的行为,只有从DBMS内完成对数据的加密,这样不仅可以有效减少来自于外界的危害,也可以有效防止DBA对数据安全造成的威胁。我的综述通过叙述数据库的安全现状说明数据库加密技术的重要性,根据数据库数据存储的特点提出数据库加密的要求,详细阐述数据库加密技术的一般原理,并重点介绍基于关系DBMS的一种数据库加密实现方法,最后提出对数据库安全管理前景的展望。

数据库加密系统技术白皮书

博睿勤数据库安全保密支撑平台 (BR-SDB V2.0) 技术白皮书 军用信息安全产品(军密认字第0194号)商用密码产品(国密证第0129号) 博睿勤技术发展有限责任公司

目录 1. 概述 (1) 1.1. 数据库安全在信息安全中的地位 (1) 1.2. 基于应用的数据库安全解决办法及弱点 (1) 1.3. 博睿勤数据库安全保密支撑平台 (1) 1.4. 适用领域 (2) 2. 系统架构与工作原理 (2) 2.1. 安全的数据库应用系统架构 (2) 2.2. 总体结构与工作原理 (3) 2.3. 安全子系统结构与工作原理 (4) 2.4. 系统组成 (5) 3. 系统功能 (5) 3.1. 增强的身份鉴别过程 (5) 3.2. 数据库存储加密 (6) 3.3. 数据库访问通信加密 (6) 3.4. 备份与恢复 (6) 3.5. 其它安全功能 (6) 4. 特点 (6) 4.1. 安全功能应用无关 (6) 4.1.1. 标准接口 (6) 4.1.2. 标准SQL支持 (6) 4.1.3. 加密内容可管理和配置 (7) 4.2.高安全性 (7) 4.2.1. 强调整体安全 (7) 4.2.2. 高强度加密算法及专用芯片 (7) 4.2.3. 安全的数据库加密密钥管理 (7) 4.2.4. 一次一密的通信加密 (7) 4.2.5. 安全的运行管理 (7) 4.3. 高效率 (8) 4.4.广泛的平台支持 (8) 4.5.丰富的产品形态 (8) 5. 性能与技术指标 (8) 5.1. 硬件密码装置技术与性能指标 (8) 5.2. 数据库加密总体性能指标 (9) 6. 应用系统开发与移植 (9) 6.1. 应用系统接口技术 (9) 6.2. 已有系统移植方法和过程 (10) 6.3. 应用系统开发方法和过程 (10)

DES加密解密课程设计报告

D E S加密解密课程设计 报告 标准化工作室编码[XX968T-XX89628-XJ668-XT689N]

成都信息工程学院课程设计报告 DES算法加密与解密的设计与实现课程名称:密码算法程序设计 学生姓名: 学生学号: 专业班级: 任课教师: XX年 XX 月 XX 日

1背景 1.1 DES算法概述 DES(Data Encryption Standard)是由美国IBM公司于20世纪70年代中期的一个密码算(LUCIFER)发展而来,在1977年1月15日,美国国家标准局正式公布实施,并得到了ISO的认可,在过去的20多年时间里,DES被广泛应用于美国联邦和各种商业信息的保密工作中,经受住了各种密码分析和攻击,有很好的安全性。然而,目前DES算法已经被更为安全的Rijndael算法取代,但是DES加密算法还没有被彻底的破解掉,仍是目前使用最为普遍的对称密码算法。所以对DES的研究还有很大价值,在国内DES算法在POS、ATM、磁卡及智能卡(IC卡)、加油站、高速公路收费站等领域被广泛应用,以此来实现关键的数据保密,如信用卡持卡人的PIN码加密传输,IC卡与POS机之间的双向认证、金融交易数据包的MAC校验等,均用到DES算法。 DES算法是一种采用传统的代替和置换操作加密的分组密码,明文以64比特为分组,密钥长度为64比特,有效密钥长度是56比特,其中加密密钥有8比特是奇偶校验,DES的加密和解密用的是同一算法,它的安全性依赖于所用的密钥。它首先把需要加密的明文划分为每64比特的二进制的数据块,用56比特有效密钥对64比特二进制数据块进行加密,每次加密可对64比特的明文输入进行16轮的替换和移位后,输出完全不同的64比特密文数据。由于DES算法仅使用最大为64比特的标准算法和逻辑运算,运算速度快,密钥容易产生,适合于在大多数计算机上用软件快速实现,同样也适合于在专用芯片上实现。 1.2 DES算法描述 DES算法的加密过程首先对明文分组进行操作,需要加密的明文分组固定为64比特的块。图1-1是DES加密算法的加密流程。图1-2是密钥扩展处理过程。 图1-1DES加密算法流程 图1-2子密钥产生流程 2系统设计 2.1系统主要目标 (1)用C++设计一个DES加密/解密软件系统; (2)完成一个明文分组的加解密,明文和密钥是ASCII码,长度都为8个字符,输入明文和密钥,输出密文,进行加密后,能够进行正确的解密; (3)程序运行时,要求输出第15、16轮的密钥,以及第15、16轮加密或解密之后的值,16进制表示; (4)程序有良好的人机交互操作; (5)要求从两个文件分别读取明文和密钥,并在程序中输出明文及密钥; (6)要求提供所设计系统的报告及完整的软件。 2.2系统运行环境

相关主题
文本预览
相关文档 最新文档