Matlab信息加密解密系统
一、Matlab簡(jiǎn)介
Matlab是matrix&laboratory兩個(gè)詞的組合,意為矩陣工廠(矩陣實(shí)驗(yàn)室)。是由美國(guó)MathWorks公司出品的商業(yè)數(shù)學(xué)軟件,它將數(shù)值分析、矩陣計(jì)算、科學(xué)數(shù)據(jù)可視化以及非線性動(dòng)態(tài)系統(tǒng)的建模和仿真等諸多強(qiáng)大功能集成在一個(gè)易于使用的視窗環(huán)境中,可以進(jìn)行矩陣運(yùn)算、圖形處理、實(shí)現(xiàn)算法、創(chuàng)建用戶界面、連接其他編程語(yǔ)言的程序等,有多樣化的各種工具箱可供應(yīng)用。主要應(yīng)用于工程計(jì)算、控制設(shè)計(jì)、信號(hào)處理與通訊、圖像處理、信號(hào)檢測(cè)、金融建模設(shè)計(jì)與分析等領(lǐng)域。Matlab與其他高級(jí)語(yǔ)言有良好的接口,如C、C++、Java等。
二、Matlab在信息加密技術(shù)方面的應(yīng)用
隨著計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展,計(jì)算機(jī)應(yīng)用更加廣泛與深入,同時(shí)也使得計(jì)算機(jī)的安全問(wèn)題日益突出和復(fù)雜。網(wǎng)絡(luò)安全面臨諸多威脅,如計(jì)算機(jī)病毒、黑客入侵、機(jī)密文件泄露等等。然而如何確保數(shù)據(jù)的可靠性、真實(shí)性、保密性,這個(gè)問(wèn)題越來(lái)越受到人們的關(guān)注。密碼技術(shù)作為保護(hù)信息安全的主要手段之一,使用密碼技術(shù)不僅可以保證信息的機(jī)密性,而且可以保證信息的完整性和確證性,防止信息被篡改、偽造和假冒。同時(shí),密碼技術(shù)是其他安全技術(shù)的基礎(chǔ),比如數(shù)字簽名和密鑰管理。隨著科學(xué)技術(shù)的進(jìn)步,信息加密出現(xiàn)了數(shù)字水印、指紋識(shí)別、人面識(shí)別等技術(shù)。Matlab軟件強(qiáng)大的科學(xué)運(yùn)算、圖形處理和仿真等功能在信息加密技術(shù)方面有著廣泛的應(yīng)用。
1.Matlab在密碼技術(shù)的應(yīng)用
保密通訊無(wú)論在軍事、政治、經(jīng)濟(jì)還是日常生活中都起著非常重要的作用。信息加密和解密的作用,就是為了將信息傳遞給己方的接受者,同時(shí)又要防止他人(特別是敵人)知道信息的內(nèi)容,必須將要傳遞的信息(明文)加密,變成密文后發(fā)送出去,這樣,即使敵方得到密文也看不懂,而己方的接受者收到密文后卻可以按照預(yù)先定好的方法加以解密。從密碼學(xué)的發(fā)展來(lái)看,密碼可分為古典密碼(即以字符為基本加密單元的密碼),以及現(xiàn)代密碼(即以信息塊為基本加密單元的密碼)。古典密碼學(xué)在計(jì)算機(jī)出現(xiàn)以前已得到廣泛應(yīng)用,主要是指20世紀(jì)40年代之前的密碼編碼和密碼分析技術(shù),加密解密過(guò)程基本是用機(jī)械和電子方法實(shí)現(xiàn)的,而不是通過(guò)軟件實(shí)現(xiàn)的,工作速度很慢,設(shè)備非常笨重。根據(jù)算法的不同,古典密碼主要有棋盤密碼、凱撒密碼、維吉尼亞密碼、普萊費(fèi)爾密碼、HILL密碼等。
矩陣是一種方便的計(jì)算工具,它在密碼學(xué)中得到廣泛的應(yīng)用。HILL2密碼是矩陣在密碼學(xué)的一個(gè)有趣應(yīng)用,HILL2密碼是基于矩陣的運(yùn)算和可逆矩陣,明文被分成大小相同的幾個(gè)組,密鑰是一個(gè)可逆方陣。我們可通過(guò)Matlab對(duì)HILL2密碼的加密和解密算法運(yùn)算實(shí)例,了解Matlab軟件的使用。在編程過(guò)程中使用Matlab的矩陣運(yùn)算函數(shù):mod(求余)、reshape(將矩陣元素按列方向進(jìn)行重組)等。
(1)明文加密:
一般的加密過(guò)程是這樣的:
明文——加密器——密文——普通信道——解密器 ——明文。
根據(jù)HILL2密碼算法的原理,我們?cè)O(shè)模 26 意義下,密鑰(加密)為矩陣A = ,密鑰(解密)為矩陣A = 時(shí),基于Matlab的加密程序操作如圖所示:
在Matlab運(yùn)行時(shí),當(dāng)輸入明文為:楊斯楠(YANGSINAN)時(shí)(明文最后N是因?yàn)樽址拈L(zhǎng)度不是偶數(shù)時(shí)的處理方法),得到的密文是:ACBUKAPCPP。
運(yùn)行過(guò)程如圖所示:
(2)密文解密
解密就是加密的逆過(guò)程。基于Matlab的解密程序操作如圖所示:
在Matlab運(yùn)行時(shí),當(dāng)輸入密文為:ACBUKAPCPP時(shí),得到的明文是: YANGSINANN。
運(yùn)行過(guò)程如圖所示:
2.Matlab在指紋識(shí)別系統(tǒng)的應(yīng)用
在一個(gè)安保系統(tǒng)或涉密信息系統(tǒng)中,當(dāng)需要對(duì)進(jìn)入者進(jìn)行身份信息鑒別時(shí),比使用密碼更安全有效的是使用生物特征識(shí)別系統(tǒng),如指紋識(shí)別系統(tǒng)等。指紋識(shí)別技術(shù)的優(yōu)勢(shì)在于,不同人的指紋,即使同一個(gè)人不同手指的指紋,紋線走向及紋線的斷點(diǎn)和交叉點(diǎn)等各不相同,也就是說(shuō),每個(gè)指紋都是唯一的。另外,指紋不隨年齡的增長(zhǎng)而發(fā)生變化,是終生不變的。依靠這種唯一性和穩(wěn)定性,可以把一個(gè)人同他的指紋對(duì)應(yīng)起來(lái),通過(guò)對(duì)他的指紋和預(yù)先保存的指紋進(jìn)行比較,就能驗(yàn)證他的真實(shí)身份。
指紋自動(dòng)識(shí)別系統(tǒng)AFIS(Automated Fingerprint Identification System)是一種通過(guò)計(jì)算機(jī)實(shí)現(xiàn)的身份識(shí)別手段。該系統(tǒng)主要包括幾個(gè)流程:指紋取像,圖像預(yù)處理,特征提取(數(shù)據(jù)庫(kù)管理),指紋識(shí)別。①指紋取像,即指將一個(gè)人的指紋采集下來(lái)輸入計(jì)算機(jī),指紋圖像的獲取主要利用設(shè)備取像,方便實(shí)用。②圖像的預(yù)處理和特征提取,無(wú)論采取哪種方法提取指紋,總會(huì)給指紋圖像帶來(lái)各種噪聲,圖像預(yù)處理的目的就是去除圖像中的噪音,把它變成一幅清晰的點(diǎn)線圖,以便于提取正確的指紋特征。預(yù)處理過(guò)程,就是將原始指紋圖像經(jīng)過(guò)離散化和歸一化等過(guò)程,得到待識(shí)別的指紋圖像數(shù)據(jù)。③指紋識(shí)別,即直接把預(yù)處理后的指紋圖像數(shù)據(jù)進(jìn)行識(shí)別匹配,一般只需計(jì)算兩幅圖像數(shù)據(jù)的相關(guān)性,得到相關(guān)系數(shù),設(shè)定某一閾值來(lái)決定是否匹配。
指紋圖像的預(yù)處理和指紋識(shí)別可以通過(guò)Matlab來(lái)進(jìn)行處理和運(yùn)算。實(shí)現(xiàn)指紋圖像的識(shí)別,常用的算法有:基于神經(jīng)網(wǎng)絡(luò)指紋識(shí)別算法、濾波特征和不變矩指紋識(shí)別算法和指紋匹配算法。Matlab環(huán)境下實(shí)現(xiàn)的指紋自動(dòng)識(shí)別系統(tǒng),具有簡(jiǎn)單靈活,易于改進(jìn)等優(yōu)點(diǎn)。
3.Matlab在涉密信息系統(tǒng)中應(yīng)用
雖然Matlab有強(qiáng)大的矩陣運(yùn)算及圖形顯示能力,但由于其是一種解釋性語(yǔ)言,執(zhí)行效率比較低,不適用于通用的編程平臺(tái)。而其他的面向?qū)ο蟮某绦蛘Z(yǔ)言,如JAVA、C++等,則被廣泛應(yīng)用于開(kāi)發(fā)各種應(yīng)用軟件,但是,它們對(duì)于某些較復(fù)雜的數(shù)學(xué)運(yùn)算的編程比較煩瑣,處理速度也較慢。因此,我們可以在這些語(yǔ)言的編程環(huán)境下,調(diào)用Matlab來(lái)處理一些比較復(fù)雜的數(shù)學(xué)運(yùn)算(如加密算法),充分發(fā)揮Matlab強(qiáng)大的數(shù)學(xué)運(yùn)算能力和仿真功能,實(shí)現(xiàn)混合編程,彌補(bǔ)單獨(dú)編程的缺點(diǎn),提高其編程效率和加快處理速度。現(xiàn)在Matlab的Matlab Engine函數(shù)具有提供面向C、C++和JAVA等語(yǔ)言的接口函數(shù),用戶可以通過(guò)在其編程環(huán)境中調(diào)用接口函數(shù),實(shí)現(xiàn)對(duì)Matlab的控制。
涉密信息系統(tǒng)用來(lái)處理和傳輸國(guó)家秘密信息,如果安全保密防范不力,就會(huì)危及國(guó)家的安全和利益。因此,安全防護(hù)技術(shù)是涉密信息系統(tǒng)安全管理的主要問(wèn)題。加密保護(hù)是保障信息安全的重要手段之一,通常的加密技術(shù)是用復(fù)雜的數(shù)學(xué)算法來(lái)改變?cè)夹畔?#xff0c;這種技術(shù)雖然安全性較高,但還是存在被破譯的可能性。而量子密碼是一種截然不同的加密方法,主要利用量子狀態(tài)作為信息加密和解密的密鑰。任何想測(cè)算和破譯密鑰的人都會(huì)因?yàn)楦淖兞孔訝顟B(tài)而得到無(wú)意義的信息。從理論上來(lái)說(shuō),用量子密碼加密的信息不可能被竊聽(tīng),安全程度極高。對(duì)于涉密信息系統(tǒng),為確保信息的安全,應(yīng)采用量子密碼來(lái)加密。在RR量子密鑰分配協(xié)議中,通信雙方執(zhí)行樣條糾錯(cuò)算法(Slice算法)將連續(xù)變量的密鑰轉(zhuǎn)換成離散的二進(jìn)制密鑰,而這個(gè)Slice算法是用Matlab語(yǔ)言編寫的。因此,在涉密信息系統(tǒng)的編程環(huán)境中,采用混合編程,通過(guò)Matlab的接口函數(shù),調(diào)用由Matlab編寫的Slice算法,實(shí)現(xiàn)量子密碼加密。
三、結(jié)束語(yǔ)
信息加密技術(shù)在我們的生活中起著越來(lái)越重要的作用,為信息安全提供了可靠的保障。Matlab集數(shù)值計(jì)算、矩陣運(yùn)算、信號(hào)處理和圖形顯示于一體。由于其強(qiáng)大的科學(xué)計(jì)算、數(shù)字圖像處理能力以及豐富的庫(kù)函數(shù)和各種各樣的工具箱,在信息安全保密方面有著廣泛的應(yīng)用前景。我雖然剛剛接觸Matlab,已深深地被它所吸引,我將要認(rèn)真學(xué)習(xí),掌握這個(gè)工具,并在今后的專業(yè)學(xué)習(xí)和實(shí)踐中予以運(yùn)用。
總結(jié)
以上是生活随笔為你收集整理的Matlab信息加密解密系统的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。