核心概念
模式
程式碼
謎題
密碼學
引言
如果您需要向朋友傳送秘密訊息,您如何才能防止其他人閱讀它?一種方法是加密訊息——也就是說,使用只有您和您的朋友知道的秘密程式碼。試試這個活動,學習如何建立您自己的“凱撒密碼”,這是一種流行的、易於學習的程式碼。
背景
密碼學是研究編寫或破解用於安全通訊的秘密程式碼的學科。歷史上,政治家、間諜和交戰國家都使用程式碼來防止敵人知道他們的意圖。許多最早的程式碼,或“密碼”,例如您將在這個專案中建立的程式碼,都很容易手工建立。現在,密碼學在計算機科學中至關重要,用於確保從電子郵件到銀行賬戶資訊的安全。
關於支援科學新聞
如果您喜歡這篇文章,請考慮透過以下方式支援我們屢獲殊榮的新聞事業 訂閱。透過購買訂閱,您正在幫助確保未來能夠繼續講述關於塑造我們當今世界的發現和想法的具有影響力的故事。
凱撒密碼,以羅馬皇帝尤利烏斯·凱撒的名字命名,是最早和最廣為人知的密碼之一。它是一種簡單的“替換密碼”形式,您透過將整個字母表移動一定的字母數(到達末尾後繞回到開頭)來替換字母表中的每個字母。例如,如果您將每個字母移動三個空格,這將是您的金鑰和程式碼
明文: ABCDEFGHIJKLMNOPQRSTUVWXYZ
密文: XYZABCDEFGHIJKLMNOPQRSTUVW
因此,當您編寫訊息時,字母 A 被替換為 X,字母 B 被替換為 Y,依此類推。例如,單詞“HELLO”變為
明文: HELLO
密文: EBIIL
為了解碼您的訊息,您需要與您的朋友分享“金鑰”(數字 3)。之後,您可以傳送用密碼編寫的訊息,這樣其他人就無法閱讀它們了!
材料
鉛筆和紙
至少另一人
準備
向朋友解釋凱撒密碼的概念,或者讓他們閱讀此活動的背景部分。
寫下從 A 到 Z 的字母表。
選擇一個 1 到 25 之間的數字。(如果您使用 26,您將最終得到原始字母表。)這個數字就是您的金鑰。
步驟
將整個字母表按您選擇的數字移動,並將其寫在原始字母表的下方(如上所示)。
選擇一條要寫給朋友的訊息。在您嘗試更長的句子或段落之前,從簡單的訊息(例如單個單詞或短語)開始可能是最容易的。
使用您移動後的字母表寫下您編碼後的訊息。如果這有幫助,請先寫下您的明文訊息,然後一次編碼一個字母(例如上面的“hello”示例)。只需確保您給朋友的紙上只有編碼後的訊息!
將編碼後的訊息給您的朋友,並告訴他們金鑰。您認為為什麼您不想寫下金鑰?
看看您的朋友是否可以解密您的訊息。如果這對第一次嘗試有幫助,讓他們使用您寫下的原始字母表和移動後的字母表向後推算。使用背景中的示例,字母 x 變為 a;y 變為 b;等等。
嘗試切換併為相同的訊息使用不同的金鑰。哪一個看起來更容易破解?
附加題: 嘗試找第三個人,他不知道什麼是凱撒密碼。如果他們“攔截”了您的訊息,他們能破解您的密碼嗎?
附加題: 如果攔截您訊息的人知道凱撒密碼怎麼辦?這是否會使破解程式碼更容易?由於只有 25 個可能的金鑰,凱撒密碼非常容易受到“暴力破解”攻擊,解碼器只需嘗試每種可能的字母組合。如果由人來做,這可能需要一些耐心,但現在計算機可以在幾分之一秒內解開程式碼,因此凱撒密碼不被認為是加密電子通訊的安全方法。
附加題: 破解凱撒密碼的另一種方法是“頻率分析”,它基於以下事實:在自然的英語口語和寫作中,某些字母的出現頻率遠高於其他字母。例如,字母 E 的出現頻率高於任何其他字母,而 Z 的出現頻率最低。(如果您玩過拼字遊戲 Scrabble,您可能會注意到這決定了字母的價值!)因此,例如,如果您閱讀整段文字並注意到字母 D 的出現頻率高於任何其他字母,那麼很可能它使用了偏移量為 1 的凱撒密碼(使程式碼中的 E 變為 D)。對於較長的文字塊,這種技術會更準確,而對於短單詞或短語則非常不準確,因為有很多單詞根本不包含 E。您能讓朋友用凱撒密碼寫一整段話,然後嘗試使用頻率分析來破解它嗎?
附加題: 如果您計劃將凱撒密碼用於常規通訊,一個風險是最終有人會發現您的金鑰。您可以透過更改金鑰來幫助防止這種情況,例如每週使用一個新金鑰。這與定期更改您的計算機密碼的概念類似。
附加題: 凱撒密碼只是一種替換密碼。查詢其他型別的替換密碼並嘗試一下。它們是更難還是更容易使用和破解?
觀察和結果
一旦您和您的朋友都瞭解瞭如何使用凱撒密碼,相互發送加密通訊應該相對容易。這可能是在朋友之間來回傳遞秘密訊息的一種有趣方式。然而,如上所述,儘管凱撒密碼為密碼學提供了一個很好的入門,但在計算機時代,它不再是安全地以電子方式傳送加密通訊的方式。
更多探索 密碼學基礎:凱撒密碼,來自 Instructables
密碼學,來自 Learn Cryptography
密碼駭客,來自大眾科學 適合所有年齡段的科學活動!,來自 Science Buddies
本活動由Science Buddies合作推出
