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