概述
摘要
本項目主要是初等數學原理在電子密碼鎖上應用的研究,利用“3個不同點確定唯一的一元二次函數”這一數學原理,來設計電子門禁裝置,使得至少3位有效密碼持有者同時在場才可開啟門禁電子鎖。同時,應用數論中的算術基本定理——每個大于1的正整數都可以唯一地表示成質數的乘積——來管理使用者的開門權限。實踐方面,我們使用Visual Basic來編寫該系統的軟件部分,并利用“USB多功能I/O開發板”、“S70射頻卡”和自制電子門實現硬件部分。當門禁系統通過USB接口同時讀取3張不同的有效射頻卡時,電子門方可自動打開。所謂三人為眾,再加上本原理巧妙地利用了一些數學原理,所以我們引用老子的《道德經》中的“眾妙之門”來命名該門禁裝置。
問題提出
學期開學之初,老師告訴我們,為了更好地利用數學實驗室,所以希望每次進入數學實驗室的同學至少3位或更多。鑒于傳統門禁鎖的使用難以滿足至少3人才可進入實驗室的條件,而且每個學期又都要有新的同學進入實驗室,電子密碼也需要不斷更新……所以我們便有了設計一個專門的門禁裝置的想法。
研究假設
可不可以利用所學的數學知識來設計滿足老師要求的密碼鎖呢?如果可以,那么它要具有以下功能:
門禁系統要具備管理彈性,因為每個學期數學班同學的人數和人員組成都不一樣;
任意3位持有有效密碼的數學班的同學同時在場,均可以打開該門禁系統;
密碼應當不容易破解又可以在每個學期支持更新;
門禁系統的使用過程中,不需要修改內置程序。
表1

密碼原理
密碼的產生
密碼由管理班級的老師制作并派發。老師首先在心中想定一個形如f(x)=Ax2+Bx的二次函數式,A與B兩個系數由老師選定。例如令A=1,B=2。每個學生各派發給一個密碼。為方便闡明原理,我們令密碼由2組數字(每組3位)組成,第一組數字是他在數學班的學號并記為x,第2組數字就是f(x)并記為y。設一班有12人,則學號(密碼前3位)就是001至012,后3位也易算得。12位同學使用的最終密碼如表1。
密碼鎖的使用
假如學號是001、002及003共3位同學要進入數學實驗室,則當2位同學正確地輸入他們的密碼后,密碼鎖就能求出老師用來產生密碼的系數A和B。假如002及003兩位同學輸入密碼后,密碼鎖就知道老師想定的二次函數經過(0,0)、(2,8)和(3,15)3點,因而這個二次函數是唯一的。解方程組
4A+2B=8 9A+3B=15
就可求出A和B的值即是1和2。所以
f(x)=x2+2x
最后001同學輸入他的密碼,密碼鎖就利用所求得的二次函數驗證所輸入密碼是否由該函數產生。如果是,就開鎖;否則,保持上鎖狀態。如果002及003同學輸入錯誤的密碼,解出來的A和B就不會是1和2。所以當001同學輸入他的密碼后,當系統檢測到此密碼并不是由它求得的函數產生時,密碼鎖也會保持上鎖狀態。
這個鎖有一個很大的優點,就是A和B不會留在鎖上,這使得它十分安全。等到下學期時,老師就可以更新A和B,大家開始使用新的密碼。而密碼鎖內的程序設置,一點都不必改變或更新。
實際操作中,計算機無須每次都解方程,而是利用拉格朗日函數的特點直接算出A和B。
系統權限管理
在權限管理方面,我們應用了算術基本定理,它又稱為質數的唯一分解定理,即:
每個大于1的自然數均可寫為質數因子的積,而且這些質因子按大小排列之后,寫法僅有一種方式。
于是系統將第i個學號對應為第i個質數來存儲,即序號為004和005的同學對應第4和第5個質數7和11。當管理老師要禁止這2位同學進入實驗室時,門禁系統會存儲7和11的乘積(77),若77可以被學號對應的質數整除時,則系統不接受開門請求。
系統功能實現
硬件部分
電子門禁系統使用Visual Basic來編寫該系統的應用程序的主要功能,而此程序由一臺筆記本電腦執行。該電腦的一個USB接口連接射頻卡的讀寫機(見圖1),而另一USB接口連接一個多功能I/O(輸入/輸出)開發板(見圖2)。開發板接收到控制電腦傳來的開門信號后,電磁鐵通電后吸起門閂,就可以開門。
軟件部分
系統的應用程序是在Windows XP環境下執行,主要分為卡片注冊、卡片管理和卡片讀取等3個功能。管理操作界面如圖3所示。
卡片注冊。模塊主要依據密碼設計原理,由老師自定KEY A和KEY B來生成注冊學生的注冊密碼,并輸入注冊學生的組號、組別和設定的有效期限。然后系統利用讀寫機將密碼及其他資料寫在該生的射頻卡上,其功能的操作界面如圖4所示。?其中Channel及Baud都是連接讀寫機的USB設定,每部電腦都可能不一樣,要正確填寫,讀寫機才可正常工作。而Card ID代表卡片的唯一序號。管理老師可以在該界面的密碼參數設定區域輸入有效期限和所設定的一元二次函數的系數A(KEY A)和B(KEY B)的值,然后點擊“生成密碼”鍵生成該卡片的密碼,然后點擊“寫入密碼”將所生成的密碼寫入對應的卡片。這個界面還同時提供“回首頁”按鍵,以供管理老師返回首頁進行相應操作。
卡片讀取。當3個或3個以上的學生請求進入實驗室時,可以通過讀卡功能將所持有的密碼卡儲存的密碼提供給門禁系統,由門禁系統根據所讀入的密碼的正誤情況選擇打開和繼續保持鎖定。具體操作如下:
第1步:讀入前兩位學生的密碼。
第2步:應用拉格朗日函數計算出注冊生成這2個密碼的二次函數系數的A和B的值,從而得到該一元二次函數。
第3步:讀入第3位同學的密碼,滿足第2步所得到的函數則打開門禁;否則,保持鎖定,并將儲存的函數清除,并返回第1步。
第4步:結束。
具體操作界面如圖5所示。
卡片管理。管理老師可利用此功能以通過整組或單個組員進行權限管理。權限管理具有兩個功能:刪除權限和恢復權限,如圖6所示。當管理老師要對整組成員進行管理時,只需將該組組號輸入對話框內,即可進行刪除和恢復權限的操作。同理,需要對單個組員進行管理時,可以在對話框內輸入該成員的組號和卡號,即可進行刪除和恢復權限的操作。

圖3 系統操作主界面

圖4 注冊界面

圖5 密碼讀取

圖6 權限管理
結論
此項目原理設計簡單,性能安全,管理富有彈性,同時便于實踐。稍加改動便可擴展到N人開門系統。與此同時,此原理的應用可以延伸至系統備份、計算機安全和審核認證等研究領域。在日常的學習中,只要我們多吸收、多觀察、多思考,很多知識就都可以應用在我們的生活中。在這里用到的二次函數性質和方法,想來在其他領域,如計算機安全上一定也會很有用。
專家評語
本項目巧妙地利用“一元二次函數曲線被三個點所決定”的原理,設計了一種持有密碼的人群中三個人輸入密碼才能打開的密碼鎖。選題新穎、恰當,是一項優秀的初中生科研實踐。