摘要:Microsoft Excel具有強(qiáng)大的公式、函數(shù)功能等,能方便地處理矩陣、求解線性方程組,而在密碼破解和解幻方中,涉及到大量的數(shù)據(jù)處理,就可以依靠Excel來(lái)完成。
關(guān)鍵詞:Excel;密碼;三階幻方
中圖分類號(hào):F49文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):16723198(2013)23017102
1Excel在密碼破解中的應(yīng)用
密碼信息傳輸包括編碼和譯碼。編碼是將明文(矩陣A)加上密鑰(矩陣B)加密成密文(矩陣C)發(fā)送出去,而譯碼是將密文(矩陣C)通過(guò)密鑰(一般為矩陣B的逆矩陣B-1)解密成明文(矩陣A)。
在信息傳遞中我們把英文字母和1-26個(gè)整數(shù)相對(duì)應(yīng),即表格1:
表1對(duì)應(yīng)表
AlN14B2015C3P16D4Q17E5R18F6S19G7T20H8U21I9V22J10W23續(xù)表KllX24L12Y25M13Z26空格對(duì)應(yīng)0注:一般要求密鑰矩陣是可逆的;所有元素均是整數(shù);其行列式值為±l。
例1(解密算法):
若加密密鑰2,5,3,8;對(duì)應(yīng)矩陣:B=23
58,傳出信息18,45,69,180,59,150,75,200,93,243;即密文矩陣為:C=1869597593
45180150200243。
那么,它傳輸了什么信息(明文)?
設(shè)明文矩陣為A,則有BA=CA=B-1C。
(1)下面我們用Excel求B-1。
第一步:寫出原矩陣B。
第二步:選中空白的N行N列(本例是2行2列)。
第三步:調(diào)出minverse(array)函數(shù),選中原矩陣B(注:此時(shí)一定不要按確定)。
第四步:按住Ctrl+Shift+Enter這3個(gè)鍵(最后按Enter)。
即B-1=8-3
-52。
(2)下面我們用Exel求B-1C。
第一步:寫出矩陣B-1和C。
第二步:選中空白的N行M列(本例是2行5列)。
第三步:調(diào)出mmult(array1,array2) 函數(shù),分別選中矩陣B-1,C(注:此時(shí)一定不要按確定)。
第四步:按住Ctrl+Shift+Enter這3個(gè)鍵(最后按Enter)。
即A=8-3
-521869597593
45180150200243=91222015
01552521。
明文:9,0,12,15,22,5,0,25,15,21;對(duì)應(yīng)表格1得到的明文為:I LOVE YOU (我愛(ài)你)。
2Excel在解幻方中的應(yīng)用
三階幻方是最簡(jiǎn)單的幻方,又叫九宮格,是由1,2,3,4,5,6,7,8,9九個(gè)數(shù)字組成的一個(gè)三行三列的矩陣,其對(duì)角線、橫行、縱向的數(shù)字的和都為15,稱這個(gè)最簡(jiǎn)單的幻方的幻和為15。三階幻方的解法很多,下面僅用Excel來(lái)求解。
我們可以把九個(gè)數(shù)字分別設(shè)成x1,x2……x9,然后根據(jù)條件列出9個(gè)方程,構(gòu)成一個(gè)方程組。對(duì)應(yīng)的增廣矩陣為
B=11100000015
00011100015
00000011115
10010010015
01001100115
10001000115
00101010015
11111111115
一般解方程組用克萊姆法則或用逆矩陣和矩陣乘法就可以算得,而在Excel中求行列式或逆矩陣或矩陣乘積都很方便,方法和上個(gè)應(yīng)用相似,但這些方法只適用于系數(shù)行列式不為零的情形。而我們?nèi)菀鬃C明上述方程組的系數(shù)行列式為零。顯然一般方法失效了。
下面用Excel中的另一個(gè)功能“規(guī)劃求解”來(lái)解這個(gè)三階幻方。
A1-A9分別代表要填入的9個(gè)數(shù)如下:
A1A2A3A4A5A6A7A8A9第一步:在B1中輸入=A1+A2+A3。
第二步:在B2-B8中分別輸入,過(guò)程與第一步類似。即分別等于各橫行、縱行、對(duì)角線之和。
第三步:打開(kāi)工具中的“規(guī)劃求解”對(duì)話框。
(1)在設(shè)置目標(biāo)單元格中輸入B1,在等于中選中“最大值”,后面的空中填入15,在可變單元格中輸入A1:A9。
(2)在約束中添加B2=15,以此類推分別添加B3=15,B4=15,B5=15,B6=15,B7=15。
B8=15;A1:A9=整數(shù);A1:A9<=9; A1:A9>=9; A3>=7;A2<=4。
(3)選中“求解”,在選中“確定”。
第四步:寫出答案。
618753294注:三階魔方有8個(gè)答案,但用規(guī)劃求解只能得出一個(gè)。
參考文獻(xiàn)
[1]馬青華.基于EXCEL的線性方程組與非線性方程的數(shù)值計(jì)算[J].電腦與信息技術(shù),2008,(10).
[2]李明.線性代數(shù)中矩陣的應(yīng)用研究[J].常州工學(xué)院學(xué)報(bào),2011,(08).
基金項(xiàng)目:本論文作為湖北省教育廳思政處課題編號(hào)[2012G350],《實(shí)踐教學(xué)中基于任務(wù)的協(xié)作學(xué)習(xí)模式研究開(kāi)題報(bào)告》的階段性研究成果。