一、Matlab简介
Matlab是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国MathWorks公司出品的商业数学软件,它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,可以进行矩阵运算、图形处理、实现算法、创建用户界面、连接其他编程语言的程序等,有多样化的各种工具箱可供应用。主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。Matlab与其他高级语言有良好的接口,如C、C++、Java等。
二、Matlab在信息加密技术方面的应用
随着计算机网络的发展,计算机应用更加广泛与深入,同时也使得计算机的安全问题日益突出和复杂。网络安全面临诸多威胁,如计算机病毒、黑客入侵、机密文件泄露等等。然而如何确保数据的可靠性、真实性、保密性,这个问题越来越受到人们的关注。密码技术作为保护信息安全的主要手段之一,使用密码技术不仅可以保证信息的机密性,而且可以保证信息的完整性和确证性,防止信息被篡改、伪造和假冒。同时,密码技术是其他安全技术的基础,比如数字签名和密钥管理。随着科学技术的进步,信息加密出现了数字水印、指纹识别、人面识别等技术。Matlab软件强大的科学运算、图形处理和仿真等功能在信息加密技术方面有着广泛的应用。
1.Matlab在密码技术的应用
保密通讯无论在军事、政治、经济还是日常生活中都起着非常重要的作用。信息加密和解密的作用,就是为了将信息传递给己方的接受者,同时又要防止他人(特别是敌人)知道信息的内容,必须将要传递的信息(明文)加密,变成密文后发送出去,这样,即使敌方得到密文也看不懂,而己方的接受者收到密文后却可以按照预先定好的方法加以解密。从密码学的发展来看,密码可分为古典密码(即以字符为基本加密单元的密码),以及现代密码(即以信息块为基本加密单元的密码)。古典密码学在计算机出现以前已得到广泛应用,主要是指20世纪40年代之前的密码编码和密码分析技术,加密解密过程基本是用机械和电子方法实现的,而不是通过软件实现的,工作速度很慢,设备非常笨重。根据算法的不同,古典密码主要有棋盘密码、凯撒密码、维吉尼亚密码、普莱费尔密码、HILL密码等。
矩阵是一种方便的计算工具,它在密码学中得到广泛的应用。HILL2密码是矩阵在密码学的一个有趣应用,HILL2密码是基于矩阵的运算和可逆矩阵,明文被分成大小相同的几个组,密钥是一个可逆方阵。我们可通过Matlab对HILL2密码的加密和解密算法运算实例,了解Matlab软件的使用。在编程过程中使用Matlab的矩阵运算函数:mod(求余)、reshape(将矩阵元素按列方向进行重组)等。
(1)明文加密:
一般的加密过程是这样的:
明文——加密器——密文——普通信道——解密器 ——明文。
根据HILL2密码算法的原理,我们设模 26 意义下,密钥(加密)为矩阵A = ,密钥(解密)为矩阵A = 时,基于Matlab的加密程序操作如图所示:
![4bad33b936257b92cb69cc5136deb9bb.png](https://i-blog.csdnimg.cn/blog_migrate/6bc724058e1381dbd7a41afd9a8c95a8.png)
在Matlab运行时,当输入明文为:杨斯楠(YANGSINAN)时(明文最后N是因为字符串的长度不是偶数时的处理方法),得到的密文是:ACBUKAPCPP。
运行过程如图所示:
![75c4c32a7af266fc58a256faf58c8aa0.png](https://i-blog.csdnimg.cn/blog_migrate/3ac5c5953d2f7c2786595e95c71334e5.png)
(2)密文解密
解密就是加密的逆过程。基于Matlab的解密程序操作如图所示:
![7fc2ed2db0d1833dfbf6873738923fe6.png](https://i-blog.csdnimg.cn/blog_migrate/4ce6c1ce9ce6d1081217f7acbdd6049e.png)
在Matlab运行时,当输入密文为:ACBUKAPCPP时,得到的明文是: YANGSINANN。
运行过程如图所示:
![93398b384aa5856ab96d932c47853f96.png](https://i-blog.csdnimg.cn/blog_migrate/66af825e178ea05a21c3b3e082160740.png)
2.Matlab在指纹识别系统的应用
在一个安保系统或涉密信息系统中,当需要对进入者进行身份信息鉴别时,比使用密码更安全有效的是使用生物特征识别系统,如指纹识别系统等。指纹识别技术的优势在于,不同人的指纹,即使同一个人不同手指的指纹,纹线走向及纹线的断点和交叉点等各不相同,也就是说,每个指纹都是唯一的。另外,指纹不随年龄的增长而发生变化,是终生不变的。依靠这种唯一性和稳定性,可以把一个人同他的指纹对应起来,通过对他的指纹和预先保存的指纹进行比较,就能验证他的真实身份。
指纹自动识别系统AFIS(Automated Fingerprint Identification System)是一种通过计算机实现的身份识别手段。该系统主要包括几个流程:指纹取像,图像预处理,特征提取(数据库管理),指纹识别。①指纹取像,即指将一个人的指纹采集下来输入计算机,指纹图像的获取主要利用设备取像,方便实用。②图像的预处理和特征提取,无论采取哪种方法提取指纹,总会给指纹图像带来各种噪声,图像预处理的目的就是去除图像中的噪音,把它变成一幅清晰的点线图,以便于提取正确的指纹特征。预处理过程,就是将原始指纹图像经过离散化和归一化等过程,得到待识别的指纹图像数据。③指纹识别,即直接把预处理后的指纹图像数据进行识别匹配,一般只需计算两幅图像数据的相关性,得到相关系数,设定某一阈值来决定是否匹配。
指纹图像的预处理和指纹识别可以通过Matlab来进行处理和运算。实现指纹图像的识别,常用的算法有:基于神经网络指纹识别算法、滤波特征和不变矩指纹识别算法和指纹匹配算法。Matlab环境下实现的指纹自动识别系统,具有简单灵活,易于改进等优点。
3.Matlab在涉密信息系统中应用
虽然Matlab有强大的矩阵运算及图形显示能力,但由于其是一种解释性语言,执行效率比较低,不适用于通用的编程平台。而其他的面向对象的程序语言,如JAVA、C++等,则被广泛应用于开发各种应用软件,但是,它们对于某些较复杂的数学运算的编程比较烦琐,处理速度也较慢。因此,我们可以在这些语言的编程环境下,调用Matlab来处理一些比较复杂的数学运算(如加密算法),充分发挥Matlab强大的数学运算能力和仿真功能,实现混合编程,弥补单独编程的缺点,提高其编程效率和加快处理速度。现在Matlab的Matlab Engine函数具有提供面向C、C++和JAVA等语言的接口函数,用户可以通过在其编程环境中调用接口函数,实现对Matlab的控制。
涉密信息系统用来处理和传输国家秘密信息,如果安全保密防范不力,就会危及国家的安全和利益。因此,安全防护技术是涉密信息系统安全管理的主要问题。加密保护是保障信息安全的重要手段之一,通常的加密技术是用复杂的数学算法来改变原始信息,这种技术虽然安全性较高,但还是存在被破译的可能性。而量子密码是一种截然不同的加密方法,主要利用量子状态作为信息加密和解密的密钥。任何想测算和破译密钥的人都会因为改变量子状态而得到无意义的信息。从理论上来说,用量子密码加密的信息不可能被窃听,安全程度极高。对于涉密信息系统,为确保信息的安全,应采用量子密码来加密。在RR量子密钥分配协议中,通信双方执行样条纠错算法(Slice算法)将连续变量的密钥转换成离散的二进制密钥,而这个Slice算法是用Matlab语言编写的。因此,在涉密信息系统的编程环境中,采用混合编程,通过Matlab的接口函数,调用由Matlab编写的Slice算法,实现量子密码加密。
三、结束语
信息加密技术在我们的生活中起着越来越重要的作用,为信息安全提供了可靠的保障。Matlab集数值计算、矩阵运算、信号处理和图形显示于一体。由于其强大的科学计算、数字图像处理能力以及丰富的库函数和各种各样的工具箱,在信息安全保密方面有着广泛的应用前景。我虽然刚刚接触Matlab,已深深地被它所吸引,我将要认真学习,掌握这个工具,并在今后的专业学习和实践中予以运用。