信息課上,老師通過(guò)講解摩爾斯電碼,向我們展示了信息編碼的奧秘,激發(fā)了我濃厚的興趣。通過(guò)閱讀書籍我了解到,從古羅馬時(shí)期的凱撒密碼,到19世紀(jì)的摩爾斯電碼,再到二戰(zhàn)時(shí)期的恩尼格瑪密碼,以及現(xiàn)代互聯(lián)網(wǎng)數(shù)據(jù)傳輸中的Twofish分組加密算法,密碼學(xué)見(jiàn)證了信息時(shí)代的變遷。
作為“軍事迷”,我決定親自動(dòng)手,制作一臺(tái)電碼加密與解密一體機(jī)(簡(jiǎn)稱“密碼機(jī)”),真實(shí)地體驗(yàn)通訊員收發(fā)電報(bào)與破解電報(bào)的過(guò)程,享受設(shè)計(jì)密碼的樂(lè)趣。
密碼設(shè)計(jì)
密碼加密過(guò)程的“秘密武器”由三部分組成,就像一個(gè)魔法三明治,它們分別是逆序、偏移加密和反碼。
逆序" 如果想發(fā)送消息“football”,我們就可以把它倒過(guò)來(lái),變成“l(fā)labtoof”。這就是逆序“魔法”。
偏移加密 偏移加密的歷史可以追溯到古羅馬時(shí)期。它的原理很簡(jiǎn)單,就像玩“字母捉迷藏”。比如,我們選擇數(shù)字3作為“魔法鑰匙”,那么所有字母都會(huì)向后移動(dòng)3個(gè)位置——字母A會(huì)變成D,B會(huì)變成E,就像這樣一直玩下去。這個(gè)魔法被稱為凱撒密碼,因?yàn)楣帕_馬的凱撒大帝曾經(jīng)用它來(lái)和他的將軍們秘密溝通。
反碼 理解反碼需要懂得一些二進(jìn)制知識(shí)??梢园涯査闺姶a(由點(diǎn)和劃兩種符號(hào)組成)看作是一種特殊的二進(jìn)制語(yǔ)言,然后對(duì)它們進(jìn)行反碼處理。這就像給每個(gè)摩爾斯電碼做一個(gè)鏡像,把點(diǎn)變成劃,劃變成點(diǎn)。比如,發(fā)送“fb”,代表“football”,先用逆序法將其變成“bf”。然后用偏移加密法,假設(shè)“魔法鑰匙”是3,那么“bf”就會(huì)變成“EI”。接著,找到“EI”對(duì)應(yīng)的摩爾斯電碼,分別是E·和I··。最后,用反碼法把點(diǎn)變成劃,秘密消息就制成了。
密碼機(jī)制作
密碼機(jī)系統(tǒng)包括Arduino UNO、擴(kuò)展板、LCD1602液晶屏、RGB燈帶、旋鈕變阻器、蜂鳴器、四個(gè)按鈕、船型開(kāi)關(guān)、LED燈、兩個(gè)3.7 V電池和杜邦線。主要硬件連接如圖2所示。
首先,我用游標(biāo)卡尺測(cè)量了每個(gè)零件的大小,并用紙板制作了一個(gè)模型,以確定整個(gè)系統(tǒng)的外觀結(jié)構(gòu)。然后,使用Tinkercad軟件設(shè)計(jì)了系統(tǒng)的3D外觀,并將其分為上下兩部分,上部分是帶有文字的蓋子,下部分是放置所有硬件的底盒。用3D打印機(jī)打印出來(lái),最后手動(dòng)組裝。
我使用Mixly2.0編寫程序,用數(shù)組來(lái)存儲(chǔ)標(biāo)準(zhǔn)的摩爾斯電碼,通過(guò)數(shù)組的下標(biāo)轉(zhuǎn)換為對(duì)應(yīng)的ASCII碼,從而得到26個(gè)英文字符。
作品完成后我邀請(qǐng)小伙伴一起試用密碼機(jī)。加密時(shí)點(diǎn)擊“加密”按鈕,利用調(diào)節(jié)旋鈕和確認(rèn)按鈕輸入想要發(fā)送的信息。系統(tǒng)會(huì)自動(dòng)根據(jù)日期計(jì)算出偏移量,然后將偏移后的內(nèi)容以反碼形式發(fā)出。解密時(shí)將聽(tīng)到的“嘀嗒”聲錄入密碼機(jī),系統(tǒng)會(huì)自動(dòng)將密文翻譯成原文。
密碼機(jī)的使用簡(jiǎn)單,它的制作不僅鍛煉了我的動(dòng)手能力,還讓我深入理解了加密和解密的過(guò)程,增強(qiáng)了信息安全意識(shí)。(指導(dǎo)老師:焦大鵬" "趙俊生)
發(fā)明與創(chuàng)新·中學(xué)生2024年12期