信息与电子工程学院毕业设计文档
《信息安全技术》加密解密专题研究
摘 要:信息安全是一个综合性的交叉学科领域,广泛涉及数学、密码学、计
算机、通信控制、人工智能、安全工程、人文科学等诸多学科,最近几年迅速发展
的一个热点学科领域。信息对抗和网络安全是信息安全的核心热点,它的研究和发
展又将刺激、推动和促进相关学科的研究和发展。至今,密码技术是取得信息安全
性最有效的一种方法,密码技术是信息安全的核心技术。
网络技术的快速发展,给我们的生活带来了方便,提高了我们的工作效率,丰富
了我们的生活,但同时,安全问题也时刻困扰着我们。连接在网络上的计算机随时
都有被黑客攻击的可能,在网络上收发的文件也有可能被黑客所截获,而这种不安
全的因素是 TCP/IP 协议所固有的,所以为了保护重要的数据加密,我们必须给重要
的文件加密。
通过数据加密,人们可以有效地保证通信线路上的内容不被泄露,而且还可以检
验传送信息的完整性。进一步,密码技术可以应用于数字签名、身份认证和信息鉴
定,这些应用对于资源存取控制以及其它安全措施是必须而且有效的。信息安全产
品从应用类型上可以分为防火墙类产品、防病毒类产品、防攻击类产品、密码类产
品、认证类产品和访问控制类产品。相对于防病毒软件和防火墙软件来说,基于密
码技术密码类产品、认证类产品份额相对较小,但随着金融、电信、政府等行业信
息化建设对于网络安全整体解决方案需求的增加,将会有较大的增长。
在本次毕业设计中,将使用 JAVA 对 MD5 算法和 SHA 算法进行了研究和比较。并
且基本实现了基本的文件加密解密的处理流程,能提供对文件的安全、有效的保护。
关键词:数据加密、解密、JAVA、MD5、SHA
1
目
录
1.前
言......................................................................................................................................................1
1.1 加密的基本概念.................................................................................................................................1
1.2 数据加密的应用.................................................................................................................................1
1.3 加密技术发展趋势.............................................................................................................................2
1.3 加密技术的分类.................................................................................................................................2
2. 国内外发展概况及现状..............................................................................................................................3
2.1 国外密码技术现状 ...........................................................................................................................3
2.2 我国密码技术现状.............................................................................................................................5
3.异或加密........................................................................................................................................................6
3.1 算法概述.............................................................................................................................................6
3.2 算法演示.............................................................................................................................................7
4.MD5 算法和 SHA 算法.....................................................................................................................................8
4.1 算法概述.............................................................................................................................................8
4.2 算法演示.............................................................................................................................................9
5.base64 加密解密.........................................................................................................................................10
5.1 算法概述.............................................................................................................................................8
5.2 算法演示............................................................................................................................................. 9
结束语.............................................................................................................................................................. 13
参考文献.......................................................................................................................................................... 14
谢.......................................................................................................................................................... 14
致
信息与电子工程学院毕业设计文档
《信息安全技术》加密解密专题研究
1.前
言
1.1 加密的基本概念
"加密",是一种限制对网络上传输数据的访问权的技术。原始数据被加密设备和
密钥加密而产生的经过编码的数据称为密文。将密文还原为原始明文的过程称为解
密,它是加密的反向处理,但解密者必须利用相同类型的加密设备和密钥对密文进
行解密。
加密的基本功能包括:
1. 防止不速之客查看机密的数据文件;
2. 防止机密数据被泄露或篡改;
3. 防止特权用户(如系统管理员)查看私人数据文件;
4. 使入侵者不能轻易地查找一个系统的文件。
数据加密是确保计算机网络安全的一种重要机制,虽然由于成本、技术和管理上
的复杂性等原因,目前尚未在网络中普及,但数据加密的确是实现分布式系统和网
络环境下数据安全的重要手段之一。
数据加密可在网络 OSI 七层协议的多层上实现的多层上实现、所以从加密技术应
用的逻辑位置看,有三种方式:
①链路加密:通常把网络层以下的加密叫链路加密,主要用于保护通信节点间传
输的数据,加解密由置于线路上的密码设备实现。根据传递的数据的同步方式又可
分为同步通信加密和异步通信加密两种,同步通信加密又包含字节同步通信加密和
位同步通信加密。
②节点加密:是对链路加密的改进。在协议传输层上进行加密,主要是对源节点
和目标节点之间传输数据进行加密保护,与链路加密类似。只是加密算法要结合在
依附于节点的加密模件中,克服了链路加密在节点处易遭非法存取的缺点。
③端对端加密:网络层以上的加密称为端对端加密。是面向网络层主体。对应
用层的数据信息进行加密,易于用软件实现,且成本低,但密钥管理问题困难,主
要适合大型网络系统中信息在多个发方和收方之间传输的情况。
1.2 数据加密的应用
1、 媒体加密:DRM
2、 文件加密:文本加密、pdf、word
1
《信息安全技术》加密解密专题研究
3、 数据加密:ASP.NET(C#)中的数据加密
4、 硬件加密:加密狗
1.3 加密技术发展趋势
①私用密钥加密技术与公开密钥加密技术相结合:鉴于两种密码体制加密的特
点,在实际应用中可以采用折衷方案,即结合使用 DES/IDEA 和 RSA,以 DES 为"内核
",RSA 为"外壳",对于网络中传输的数据可用 DES 或 IDEA 加密,而加密用的密钥则
用 RSA 加密传送,此种方法既保证了数据安全又提高了加密和解密的速度,这也是
目前加密技术发展的新方向之一。
②寻求新算法:跳出以常见的迭代为基础的构造思路,脱离基于某些数学问题复
杂性的构造方法。如刘尊全先生提出的刘氏算法,是一种基于密钥的公开密钥体制,
它采用了随机性原理构造加解密变换,并将其全部运算控制隐匿于密钥中,密钥长
度可变。它是采用选取一定长度的分割来构造大的搜索空间,从而实现一次非线性
变换。此种加密算法加密强度高、速度快、计算开销低。
③加密最终将被集成到系统和网络中,例如 IPV6 协议就已有了内置加密的支持,
在硬件方面,Intel 公司正研制一种加密协处理器。它可以集成到微机的主极上。
1.3 加密技术的分类
加密类型可以简单地分为四种:
1、根本不考虑解密问题,如:MD5;
2、私用密钥加密技术:对称式加密(Symmetric Key Encryption):对称式加密
方式对加密和解密使用相同的密钥。通常,这种加密方式在应用中难以实施,因为
用同一种安全方式共享密钥很难。如:RC4、RC2、DES 和 AES 系列加密算法。
3、公开密钥加密技术:非对称密钥加密(Asymmetric Key Encryption):非对
称密钥加密使用一组公共/私人密钥系统,加密时使用一种密钥,解密时使用另一种
密钥。公共密钥可以广泛的共享和透露。当需要用加密方式向服务器外部传送数据
时,这种加密方式更方便。如:RSA
4、数字证书。(Certificate):数字证书是一种非对称密钥加密,但是,一个
组织可以使用证书并通过数字签名将一组公钥和私钥与其拥有者相关联。
2
信息与电子工程学院毕业设计文档
2. 国内外发展概况及现状
2.1 国外密码技术现状
密码理论与技术主要包括两部分,即基于数学的密码理论与技术(包括公钥密
码、分组密码、序列密码、认证码、数字签名、Hash 函数、身份识别、密钥管理、
PKI 技术等)和非数学的密码理论与技术(包括信息隐形,量子密码,基于生物特征
的识别理论与技术)。
自从 1976 年公钥密码的思想提出以来,国际上已经提出了许多种公钥密码体制,
但比较流行的主要有两类:一类是基于大整数因子分解问题的,其中最典型的代表
是 RSA;另一类是基于离散对数问题的,比如 ElGamal 公钥密码和影响比较大的椭圆
曲线公钥密码。由于分解大整数的能力日益增强,所以对 RSA 的安全带来了一定的
威胁。目前 768 比特模长的 RSA 已不安全。一般建议使用 1024 比特模长,预计要保
证 20 年的安全就要选择 1280 比特的模长,增大模长带来了实现上的难度。而基于
离散对数问题的公钥密码在目前技术下 512 比特模长就能够保证其安全性。特别是
椭圆曲线上的离散对数的计算要比有限域上的离散对数的计算更困难,目前技术下
只需要 160 比特模长即可,适合于智能卡的实现,因而受到国内外学者的广泛关注。
国际上制定了椭圆曲线公钥密码标准 IEEEP1363,RSA 等一些公司声称他们已开发出
了符合该标准的椭圆曲线公钥密码。我国学者也提出了一些公钥密码,另外在公钥
密码的快速实现方面也做了一定的工作,比如在 RSA 的快速实现和椭圆曲线公钥密
码的快速实现方面都有所突破。公钥密码的快速实现是当前公钥密码研究中的一个
热点,包括算法优化和程序优化。另一个人们所关注的问题是椭圆曲线公钥密码的
安全性论证问题。
公钥密码主要用于数字签名和密钥分配。当然,数字签名和密钥分配都有自己
的研究体系,形成了各自的理论框架。目前数字签名的研究内容非常丰富,包括普
通签名和特殊签名。特殊签名有盲签名,代理签名,群签名,不可否认签名,公平
盲签名,门限签名,具有消息恢复功能的签名等,它与具体应用环境密切相关。显
然,数字签名的应用涉及到法律问题,美国联邦政府基于有限域上的离散对数问题
制定了自己的数字签名标准(DSS),部分州已制定了数字签名法。法国是第一个制
定数字签名法的国家,其他国家也正在实施之中。在密钥管理方面,国际上都有一
些大的举动,比如 1993 年美国提出的密钥托管理论和技术、国际标准化组织制定的
X.509 标准以及麻省里工学院开发的 Kerboros 协议等,这些工作影响很大。密钥管
理中还有一种很重要的技术就是秘密共享技术,它是一种分割秘密的技术,目的是
阻止秘密过于集中,自从 1979 年 Shamir 提出这种思想以来,秘密共享理论和技术
达到了空前的发展和应用,特别是其应用至今人们仍十分关注。我国学者在这些方
面也做了一些跟踪研究,发表了很多论文,按照 X.509 标准实现了一些 CA。目前人
们关注的是数字签名和密钥分配的具体应用以及潜信道的深入研究。
认证码是一个理论性比较强的研究课题,自 80 年代后期以来,在其构造和界的
估计等方面已经取得了长足的发展,我国学者在这方面的研究工作也非常出色,影
3
《信息安全技术》加密解密专题研究
响较大。目前这方面的理论相对比较成熟,很难有所突破。另外,认证码的应用非
常有限,几乎停留在理论研究上,已不再是密码学中的研究热点。
Hash 函数主要用于完整性校验和提高数字签名的有效性,目前已经提出了很多
方案,各有千秋。美国已经制定了 Hash 标准-SHA-1,与其数字签名标准匹配使用。
由于技术的原因,美国目前正准备更新其 Hash 标准,另外,欧洲也正在制定 Hash
标准,这必然导致 Hash 函数的研究特别是实用技术的研究将成为热点。
在身份识别的研究中,最令人瞩目的识别方案有两类:一类是 1984 年 Shamir
提出的基于身份的识别方案,另一类是 1986 年 Fiat 等人提出的零知识身份识别方
案。随后,人们在这两类方案的基础上又提出了一系列实用的身份识别方案,比如,
Schnorr 识 别 方 案 、 Okamoto 识 别 方 案 、 Guillou-Quisquater 识 别 方 案 、
Feige-Fiat-Shamir 识别方案等。目前人们所关注的是身份识别方案与具体应用环境
的有机结合。
序列密码主要用于政府、军方等国家要害部门,尽管用于这些部门的理论和技
术都是保密的,但由于一些数学工具(比如代数、数论、概率等)可用于研究序列
密码,其理论和技术相对而言比较成熟。从八十年代中期到九十年代初,序列密码
的研究非常热,在序列密码的设计与生成以及分析方面出现了一大批有价值的成果,
我国学者在这方面也做了非常优秀的工作。虽然,近年来序列密码不是一个研究热
点,但有很多有价值的公开问题需要进一步解决,比如自同步流密码的研究,有记
忆前馈网络密码系统的研究,混沌序列密码和新研究方法的探索等。另外,虽然没
有制定序列密码标准,但在一些系统中广泛使用了序列密码比如 RC4,用于存储加密。
事实上,欧洲的 NESSIE 计划中已经包括了序列密码标准的制定,这一举措有可能导
致序列密码研究热。
美国早在 1977 年就制定了自己的数据加密标准,但除了公布具体的算法之外,
从来不公布详细的设计规则和方法。随着美国的数据加密标准的出现,人们对分组
密码展开了深入的研究和讨论,设计了大量的分组密码, 给出了一系列的评测准则,
其他国家, 如日本和苏联也纷纷提出了自己的数据加 密标准。 但在这些分组密码
中能被人们普遍接受和认可的算法却寥寥无几。何况一些好的算法已经被攻破或已
经不适用于技术的发展要求。比如美国的数据加密标准已经于 1997 年 6 月 17 日被
攻破。美国从 1997 年 1 月起,正在征集、制定和评估新一代数据加密标准,又称作
AES 活动。AES 活动使得国际上又掀起了一次研究分组密码的新高潮。继美国征集 AES
活动之后,欧洲和日本也不甘落后启动了相关标准的征集和制定工作,看起来比美
国更宏伟。同时国外比如美国为适应技术发展的需求也加快了其它密码标准的更新,
比如 SHA-1 和 FIPS140-1。我国目前的做法是针对每个或每一类安全产品需要开发所
用的算法,而且算法和源代码都不公开,这样一来,算法的需求量相对就比较大,
继而带来了兼容性、互操作性等问题。
国外目前不仅在密码基础理论方面的研究做得很好,而且在实际应用方面也做
得很好。制定了一系列的密码标准,特别规范。算法的征集和讨论都已经公开化,
但密码技术作为一种关键技术,各国都不会放弃自主权和控制权,都在争夺霸主地
4