概述
摘要
本項目主要是初等數(shù)學(xué)原理在電子密碼鎖上應(yīng)用的研究,利用“3個不同點確定唯一的一元二次函數(shù)”這一數(shù)學(xué)原理,來設(shè)計電子門禁裝置,使得至少3位有效密碼持有者同時在場才可開啟門禁電子鎖。同時,應(yīng)用數(shù)論中的算術(shù)基本定理——每個大于1的正整數(shù)都可以唯一地表示成質(zhì)數(shù)的乘積——來管理使用者的開門權(quán)限。實踐方面,我們使用Visual Basic來編寫該系統(tǒng)的軟件部分,并利用“USB多功能I/O開發(fā)板”、“S70射頻卡”和自制電子門實現(xiàn)硬件部分。當(dāng)門禁系統(tǒng)通過USB接口同時讀取3張不同的有效射頻卡時,電子門方可自動打開。所謂三人為眾,再加上本原理巧妙地利用了一些數(shù)學(xué)原理,所以我們引用老子的《道德經(jīng)》中的“眾妙之門”來命名該門禁裝置。
問題提出
學(xué)期開學(xué)之初,老師告訴我們,為了更好地利用數(shù)學(xué)實驗室,所以希望每次進(jìn)入數(shù)學(xué)實驗室的同學(xué)至少3位或更多。鑒于傳統(tǒng)門禁鎖的使用難以滿足至少3人才可進(jìn)入實驗室的條件,而且每個學(xué)期又都要有新的同學(xué)進(jìn)入實驗室,電子密碼也需要不斷更新……所以我們便有了設(shè)計一個專門的門禁裝置的想法。
研究假設(shè)
可不可以利用所學(xué)的數(shù)學(xué)知識來設(shè)計滿足老師要求的密碼鎖呢?如果可以,那么它要具有以下功能:
門禁系統(tǒng)要具備管理彈性,因為每個學(xué)期數(shù)學(xué)班同學(xué)的人數(shù)和人員組成都不一樣;
任意3位持有有效密碼的數(shù)學(xué)班的同學(xué)同時在場,均可以打開該門禁系統(tǒng);
密碼應(yīng)當(dāng)不容易破解又可以在每個學(xué)期支持更新;
門禁系統(tǒng)的使用過程中,不需要修改內(nèi)置程序。
表1
密碼原理
密碼的產(chǎn)生
密碼由管理班級的老師制作并派發(fā)。老師首先在心中想定一個形如f(x)=Ax2+Bx的二次函數(shù)式,A與B兩個系數(shù)由老師選定。例如令A(yù)=1,B=2。每個學(xué)生各派發(fā)給一個密碼。為方便闡明原理,我們令密碼由2組數(shù)字(每組3位)組成,第一組數(shù)字是他在數(shù)學(xué)班的學(xué)號并記為x,第2組數(shù)字就是f(x)并記為y。設(shè)一班有12人,則學(xué)號(密碼前3位)就是001至012,后3位也易算得。12位同學(xué)使用的最終密碼如表1。
密碼鎖的使用
假如學(xué)號是001、002及003共3位同學(xué)要進(jìn)入數(shù)學(xué)實驗室,則當(dāng)2位同學(xué)正確地輸入他們的密碼后,密碼鎖就能求出老師用來產(chǎn)生密碼的系數(shù)A和B。假如002及003兩位同學(xué)輸入密碼后,密碼鎖就知道老師想定的二次函數(shù)經(jīng)過(0,0)、(2,8)和(3,15)3點,因而這個二次函數(shù)是唯一的。解方程組
4A+2B=8 9A+3B=15
就可求出A和B的值即是1和2。所以
f(x)=x2+2x
最后001同學(xué)輸入他的密碼,密碼鎖就利用所求得的二次函數(shù)驗證所輸入密碼是否由該函數(shù)產(chǎn)生。如果是,就開鎖;否則,保持上鎖狀態(tài)。如果002及003同學(xué)輸入錯誤的密碼,解出來的A和B就不會是1和2。所以當(dāng)001同學(xué)輸入他的密碼后,當(dāng)系統(tǒng)檢測到此密碼并不是由它求得的函數(shù)產(chǎn)生時,密碼鎖也會保持上鎖狀態(tài)。
這個鎖有一個很大的優(yōu)點,就是A和B不會留在鎖上,這使得它十分安全。等到下學(xué)期時,老師就可以更新A和B,大家開始使用新的密碼。而密碼鎖內(nèi)的程序設(shè)置,一點都不必改變或更新。
實際操作中,計算機(jī)無須每次都解方程,而是利用拉格朗日函數(shù)的特點直接算出A和B。
系統(tǒng)權(quán)限管理
在權(quán)限管理方面,我們應(yīng)用了算術(shù)基本定理,它又稱為質(zhì)數(shù)的唯一分解定理,即:
每個大于1的自然數(shù)均可寫為質(zhì)數(shù)因子的積,而且這些質(zhì)因子按大小排列之后,寫法僅有一種方式。
于是系統(tǒng)將第i個學(xué)號對應(yīng)為第i個質(zhì)數(shù)來存儲,即序號為004和005的同學(xué)對應(yīng)第4和第5個質(zhì)數(shù)7和11。當(dāng)管理老師要禁止這2位同學(xué)進(jìn)入實驗室時,門禁系統(tǒng)會存儲7和11的乘積(77),若77可以被學(xué)號對應(yīng)的質(zhì)數(shù)整除時,則系統(tǒng)不接受開門請求。
系統(tǒng)功能實現(xiàn)
硬件部分
電子門禁系統(tǒng)使用Visual Basic來編寫該系統(tǒng)的應(yīng)用程序的主要功能,而此程序由一臺筆記本電腦執(zhí)行。該電腦的一個USB接口連接射頻卡的讀寫機(jī)(見圖1),而另一USB接口連接一個多功能I/O(輸入/輸出)開發(fā)板(見圖2)。開發(fā)板接收到控制電腦傳來的開門信號后,電磁鐵通電后吸起門閂,就可以開門。
軟件部分
系統(tǒng)的應(yīng)用程序是在Windows XP環(huán)境下執(zhí)行,主要分為卡片注冊、卡片管理和卡片讀取等3個功能。管理操作界面如圖3所示。
卡片注冊。模塊主要依據(jù)密碼設(shè)計原理,由老師自定KEY A和KEY B來生成注冊學(xué)生的注冊密碼,并輸入注冊學(xué)生的組號、組別和設(shè)定的有效期限。然后系統(tǒng)利用讀寫機(jī)將密碼及其他資料寫在該生的射頻卡上,其功能的操作界面如圖4所示。?其中Channel及Baud都是連接讀寫機(jī)的USB設(shè)定,每部電腦都可能不一樣,要正確填寫,讀寫機(jī)才可正常工作。而Card ID代表卡片的唯一序號。管理老師可以在該界面的密碼參數(shù)設(shè)定區(qū)域輸入有效期限和所設(shè)定的一元二次函數(shù)的系數(shù)A(KEY A)和B(KEY B)的值,然后點擊“生成密碼”鍵生成該卡片的密碼,然后點擊“寫入密碼”將所生成的密碼寫入對應(yīng)的卡片。這個界面還同時提供“回首頁”按鍵,以供管理老師返回首頁進(jìn)行相應(yīng)操作。
卡片讀取。當(dāng)3個或3個以上的學(xué)生請求進(jìn)入實驗室時,可以通過讀卡功能將所持有的密碼卡儲存的密碼提供給門禁系統(tǒng),由門禁系統(tǒng)根據(jù)所讀入的密碼的正誤情況選擇打開和繼續(xù)保持鎖定。具體操作如下:
第1步:讀入前兩位學(xué)生的密碼。
第2步:應(yīng)用拉格朗日函數(shù)計算出注冊生成這2個密碼的二次函數(shù)系數(shù)的A和B的值,從而得到該一元二次函數(shù)。
第3步:讀入第3位同學(xué)的密碼,滿足第2步所得到的函數(shù)則打開門禁;否則,保持鎖定,并將儲存的函數(shù)清除,并返回第1步。
第4步:結(jié)束。
具體操作界面如圖5所示。
卡片管理。管理老師可利用此功能以通過整組或單個組員進(jìn)行權(quán)限管理。權(quán)限管理具有兩個功能:刪除權(quán)限和恢復(fù)權(quán)限,如圖6所示。當(dāng)管理老師要對整組成員進(jìn)行管理時,只需將該組組號輸入對話框內(nèi),即可進(jìn)行刪除和恢復(fù)權(quán)限的操作。同理,需要對單個組員進(jìn)行管理時,可以在對話框內(nèi)輸入該成員的組號和卡號,即可進(jìn)行刪除和恢復(fù)權(quán)限的操作。
圖3 系統(tǒng)操作主界面
圖4 注冊界面
圖5 密碼讀取
圖6 權(quán)限管理
結(jié)論
此項目原理設(shè)計簡單,性能安全,管理富有彈性,同時便于實踐。稍加改動便可擴(kuò)展到N人開門系統(tǒng)。與此同時,此原理的應(yīng)用可以延伸至系統(tǒng)備份、計算機(jī)安全和審核認(rèn)證等研究領(lǐng)域。在日常的學(xué)習(xí)中,只要我們多吸收、多觀察、多思考,很多知識就都可以應(yīng)用在我們的生活中。在這里用到的二次函數(shù)性質(zhì)和方法,想來在其他領(lǐng)域,如計算機(jī)安全上一定也會很有用。
專家評語
本項目巧妙地利用“一元二次函數(shù)曲線被三個點所決定”的原理,設(shè)計了一種持有密碼的人群中三個人輸入密碼才能打開的密碼鎖。選題新穎、恰當(dāng),是一項優(yōu)秀的初中生科研實踐。