陕西理工学院毕业论文(设计)
1 数据加密概述
密码学是一门古老而深奥的学科,它对一般人来说是陌生的,因为长期以来,它只在很少的范围内,如军事、外交、情报等部门使用。计算机密码学是研究计算机信息加密、解密及其变换的科学,是数学和计算机的交叉学科,也是一门新兴的学科。随着计算机网络和计算机通讯技术的发展,计算机密码学得到前所未有的重视并迅速普及和发展起来。在国外,它已成为计算机安全主要的研究方向,也是计算机安全课程教学中的主要内容。
密码是实现秘密通讯的主要手段,是隐蔽语言、文字、图象的特种符号。凡是用特种符号按照通讯双方约定的方法把电文的原形隐蔽起来,不为第三者所识别的通讯方式称为密码通讯。在计算机通讯中,采用密码技术将信息隐蔽起来,再将隐蔽后的信息传输出去,使信息在传输过程中即使被窃取或载获,窃取者也不能了解信息的内容,从而保证信息传输的安全。 任何一个加密系统至少包括下面四个组成部分: (1)未加密的报文,也称明文。 (2)加密后的报文,也称密文。 (3)加密解密设备或算法。 (4)加密解密的密钥。
发送方用加密密钥,通过加密设备或算法,将信息加密后发送出去。接收方在收到密文后,用解密密钥将密文解密,恢复为明文。如果传输中有人窃取,他只能得到无法理解的密文,从而对信息起到保密作用。
1.1 基本概念
数据加密技术就是指将一个信息或明文经过加密钥匙及加密函数转换,变成无意义的密文,而接收方则将此密文经过解密函数.解密钥匙还原成明文。加密技术是网络安全技术的基石。
明文,即加密前的真实的数据或信息,它是可以被外界所识别,它指代的含义比较广泛,比如用户A要将一份文件发送给用户B,那么我们就将用户A手里所拿的那份文件称之为明文。
密文,就是对信息经过一定的处理,使它变成无意义的乱码,非指定用户无法对它进行识别,例如A使用密钥K加密消息并将其发送给B,B收到加密的消息后,使用密钥K对其解密以恢复原始消息,那么在这一过程当中A在途中发送给B的东西我们就叫它密文,因为这个文件除B外,其他人得到它也没有任何意义,这就保证了信息传送的保密性。
完成加密和解密的算法成为为密码体制。人们一方面要把自己的信号隐蔽起来,另一方面则想把别人的隐蔽信息挖掘出来,于是就产生了密码分析的逆科学——密码分析。密码分析研究的问题是如何把密文转换成明文。把密文转换成明文的过程称为破译。破译也是进行函数变换,变换过程中使用的参数也叫密钥。
一般地,如果求解一个问题需要一定量的计算,但环境所能提供的实际资源却无法实现,则这种问题是计算上不可能的。如果一个密码体制的破译是计算上不可能的。则称该密码体制是计算上安全的。密码体制必须满足三个基本要求:
(1)对所有的密钥、加密和解密都必须迅速有效; (2)体制必须容易使用;
第2页 共41页
陕西理工学院毕业论文(设计)
(3)体制的安全性必须只依赖于密钥的保密性。密码体制要实现的功能可分为保密性和真实性两种。
保密性要求密码分析员无法从截获的密文中求出明文。一般情况下一个密码体制的保密性包括两项要求:
(1)即使截获了一段密文C,甚至知道了与它对应的明文M,密码分析要从系统中求出解密
变换,仍然是计算上不可行的。
(2)密码分析员要由截获的密文C中系统的求出明文M是计算上不可能的。
数据的真实性要求密码分析员无法用虚假的密文代替真是密文而不被察觉,它也包括两个要求: (1)对于给定的C,即使密码分析员知道了对应于它的明文M,要系统的求出加密变换仍然
是计算上不可能的。
(2)密码分析员要系统地找到密文,使其是明文空间上有意义的明文,这在计算上是不可
能的。
1.2 数据加密分类
专用密钥:又称为对称密钥或单密钥,加密和解密时使用同一个密钥,即同一个算法。如DES和MIT的Kerberos算法。单密钥是最简单方式,通信双方必须交换彼此密钥,当需给对方发信息时,用自己的加密密钥进行加密,而在接收方收到数据后,用对方所给的密钥进行解密。当一个文本要加密传送时,该文本用密钥加密构成密文,密文在信道上传送,收到密文后用同一个密钥将密文解出来,形成普通文体供阅读。在对称密钥中,密钥的管理极为重要,一旦密钥丢失,密文将无密可保。这种方式在与多方通信时因为需要保存很多密钥而变得很复杂,而且密钥本身的安全就是一个问题。
公开密钥:又称非对称密钥,加密和解密时使用不同的密钥,即不同的算法,虽然两者之间存在一定的关系,但不可能轻易地从一个推导出另一个。有一把公用的加密密钥,有多把解密密钥,如RSA算法。
非对称密钥由于两个密钥(加密密钥和解密密钥)各不相同,因而可以将一个密钥公开,而将另一个密钥保密,同样可以起到加密的作用。
在这种编码过程中,一个密码用来加密消息,而另一个密码用来解密消息。在两个密钥中有一种关系,通常是数学关系。公钥和私钥都是一组十分长的、数字上相关的素数(是另一个大数字的因数)。有一个密钥不足以翻译出消息,因为用一个密钥加密的消息只能用另一个密钥才能解密。每个用户可以得到唯一的一对密钥,一个是公开的,另一个是保密的。公共密钥保存在公共区域,可在用户中传递,甚至可印在报纸上面。而私钥必须存放在安全保密的地方。任何人都可以有你的公钥,但是只有你一个人能有你的私钥。它的工作过程是:“你要我听你的吗?除非你用我的公钥加密该消息,我就可以听你的,因为我知道没有别人在偷听。只有我的私钥(其他人没有)才能解密该消息,所以我知道没有人能读到这个消息。我不必担心大家都有我的公钥,因为它不能用来解密该消息。”
第3页 共41页
陕西理工学院毕业论文(设计)
公钥加密体制具有以下优点:
(1) 密钥分配简单。 (2) 密钥的保存量少。
(3) 可以满足互不相识的人之间进行私人谈话时的保密性要求。 (4) 可以完成数字签名和数字鉴别。 明文M 用户A 加密 解密 用户B 密文C=E(M,K1) M=D(C,K2) K1 K2 公钥空间 (密钥本)
图1.1 公钥密码体制示意图
密码分析 私钥空间
对称密钥:对称密钥是最古老的,一般说“密电码”采用的就是对称密钥。由于对称密钥运算量小、速度快、安全强度高,因而目前仍广泛被采用。
DES是一种数据分组的加密算法,它将数据分成长度为64位的数据块,其中8位用作奇偶校验,剩余的56位作为密码的长度。第一步将原文进行置换,得到64位的杂乱无章的数据组;第二步将其分成均等两段;第三步用加密函数进行变换,并在给定的密钥参数条件下,进行多次迭代而得到加密密文。
非对称加密技术:数字签名一般采用非对称加密技术(如RSA),通过对整个明文进行某种变换,得到一个值,作为核实签名。接收者使用发送者的公开密钥对签名进行解密运算,如其结果为明文,则签名有效,证明对方的身份是真实的。当然,签名也可以采用多种方式,例如,将签名附在明文之后。数字签名普遍用于银行、电子贸易等。
数字签名:数字签名不同于手写签字,数字签名随文本的变化而变化,手写签字反映某个人个性特征,是不变的;数字签名与文本信息是不可分割的,而手写签字是附加在文本之后的,与文本信息是分离的。
第4页 共41页
陕西理工学院毕业论文(设计)
值得注意的是,能否切实有效地发挥加密机制的作用,关键的问题在于密钥的管理,包括密钥的生存、分发、安装、保管、使用以及作废全过程。
第5页 共41页
陕西理工学院毕业论文(设计)
2 Matlab工具介绍
2.1 MATLAB语言的主要特点
(1).具有丰富的数学功能。
① 包括矩阵各种运算。如:正交变换、三角分解、特征值、常见的特殊矩阵等。
② 包括各种特殊函数。如:贝塞尔函数、勒让德函数、伽码函数、贝塔函数、椭圆函数等。 ③ 包括各种数学运算功能。如:数值微分、数值积分、插值、求极值、方程求根、FFT 、
常微分方程的数值解等。
(2).具有很好的图视系统。 ① 可方便地画出两维和三维图形。
② 高级图形处理。如:色彩控制、句柄图形、动画等。
③ 图形用户界面GUI制作工具,可以制作用户菜单和控件。使用者可以根据自己的需求编
写出满意的图形界面。
(3).可以直接处理声言和图形文件。
① 声言文件。如: WAV文件(例:wavread,sound等)。 ② 图形文件。如: bmp 、gif 、 pcx 、tif 、jpeg等文件。 (4). 具有若干功能强大的应用工具箱。
如:SIMULINK、COMM、DSP、 SIGNAL等16种工具箱。 (5). 使用方便,具有很好的扩张功能。
① 使用MATLAB语言编写的程序可以直接运行,无需编译。 ② 可以M文件转变为独立于平台的EXE可执行文件。
③ MATLAB的应用接口程序API是MATLAB提供的十分重要的组件 ,由 一系列接口指令组
成 。用户就可在FORTRAN或C中 , 把MATLAB当作计算引擎使用 。
(6). 具有很好的帮助功能
① 提供十分详细的帮助文件(PDF 、HTML 、demo文件)。
② 联机查询指令:help指令(例:help elfun,help exp,help simulink),lookfor关
键词(例: lookfor fourier )。
2.2 Matlab的程序设计
2.2.1 脚本文件和函数文件
M文件有两种形式 :脚本文件(Script File)和函数文件(Function File )。这两种文件的扩展名,均为“ . m” 。
第6页 共41页