跳轉到內容

計算機科學基礎/加密

來自華夏公益教科書,開放的書籍,開放的世界

為了確保安全通訊的進行,必須使用加密方法。 網頁上的安全通訊對於電子商務等領域很重要。 加密用於對訊息進行編碼,以確保除了預期接收者之外沒有人知道訊息內容。

在網際網路上以資料包形式傳輸的訊息。 當您考慮資料包時,它們更像是明信片而不是信件。 每個資料包的內容都是明文(暴露給所有人檢視),因為位在傳輸時是公開的。

保護這些資料包在傳輸過程中和接收後的最佳方式是使用加密技術。 加密只是將資訊(明文)轉換為無法理解的文字(密文)的過程,以避免不必要的第三方攔截訊息。 為了讓接收者理解密文,他們必須使用解密方法。 解密將密文還原為明文的過程反過來。

加密和解密這兩個部分是密碼學的一部分。 密碼學(秘密寫作)是研究在第三方存在的情況下安全通訊技術的方法和實踐。 這不是一個新的實踐,早在公元前 2000 年就出現了。

凱撒密碼

[編輯 | 編輯原始碼]

凱撒密碼是替換密碼的一個例子。 這種密碼使用逐字母翻譯來加密訊息。 密碼只是一個將訊息轉換為模糊形式的方法(演算法),並反轉轉換。 下面可以看出這種特定密碼的一個例子,您用底行對應的字母替換頂行中的每個字母

Caesar Cipher example.
凱撒密碼示例。

使用凱撒密碼,有 25 種可能的變體,每種變體代表一種不同的移位量。 關於加密和解密規則需要注意的是移位量。 如果我們知道使用了凱撒密碼,那麼我們可以嘗試字母表的所有 25 種可能的移位來解密訊息。 但是,已經建立了工具來 加密解密 使用此密碼建立的訊息。

替換密碼

[編輯 | 編輯原始碼]

替換密碼是使用一個符號根據統一規則替換另一個符號的密碼。 下面的示例顯示了一個替換表,它定義了字母重新排序的規則。 使用下面的示例可以執行多少種可能的重新排序?

Substitution cipher
替換密碼
Number of methods possible.
可能的數量。

這種型別的密碼似乎是牢不可破的,但這並非如此。 頻率分析用於解碼替換密碼。 用於破解一般替換密碼的這種技術使用語言中出現的字母頻率。 下面的影像顯示了帶有符號的原始訊息。 我們將使用頻率分析來解碼密碼。

Original encoded ciphertext.
原始編碼的密文。

在將最常用的字元替換為 E 和 T 後,我們可以開始使用其他常見符號和句子結構來填補空白。

Process of using conjectural decoding.
使用推測解碼的過程。

最後,在用常用的字母替換符號後,我們看到下面顯示了整個訊息。

Complete ciphertext message.
完整的密文訊息。

維吉尼亞密碼

[編輯 | 編輯原始碼]

維吉尼亞密碼類似於凱撒密碼,但它使用多個凱撒密碼來編碼訊息。 很長一段時間,維吉尼亞密碼被認為是牢不可破的,直到 19 世紀,查爾斯·巴貝奇發現了一種方法。

This table shows the key to the cipher thomasbbryan. This cipher was used by an attorney named Thomas B. Bryan in 1894 to communicate with his client.
此表顯示了密碼 thomasbbryan 的金鑰。 這種密碼在 1894 年被一位名叫托馬斯·B·布萊恩的律師用來與他的委託人交流。
Key description
金鑰描述

上面使用的替換表用於加密和解密訊息。 我們使用第二列“thomasbbryan”來唯一識別表。 此金鑰用於指定使用哪種密碼。

維吉尼亞密碼在 1863 年解碼該密碼的方法被發現之前是牢不可破的。 儘管該密碼不再安全,但在當時它是安全通訊的一大進步。

維爾南密碼

[編輯 | 編輯原始碼]

在維吉尼亞密碼中發現的弱點是重複使用相同的金鑰。 為了解決這個問題,建立了維爾南密碼。 金鑰與明文一樣長,因此不需要重複。 例如,如果我們想使用維爾南密碼加密長度為 100 的訊息,我們可能會使用 100 個擴充套件到 100 行的凱撒密碼。 這是一種一次性密碼本,用於加密訊息。 維爾南密碼在二戰和冷戰期間被廣泛使用。

原則上,一次性密碼本在密碼學方面是最棒的。 這種過程是數學上可證明的。 維爾南密碼的操作方式類似於凱撒密碼。 凱撒密碼使用一個數字金鑰作為移位密碼,維爾南密碼透過使用許多不同的移位密碼來操作,每個金鑰字母都有一個唯一的移位密碼。 這是透過根據字母在字母表中對應的值對字元進行移位來完成的。 例如,如果金鑰的字母是“A”,則會導致 1 個移位。

如果使用得當,一次性密碼本是牢不可破的,但很難在各方之間傳輸一次性密碼本而不會被攔截。 另一個挑戰是密碼(一次性密碼本)不實用。 如果有辦法傳輸訊息,那麼由於長度和複雜性,這個人也可以直接傳送訊息本身。

如今,我們使用更具創新性的方法來確保通訊安全。 複雜的密碼(程式)使用更短的金鑰,這些金鑰是雙方同意保密的位序列。 這種方法之所以有效,是因為計算機將 ASCII 編碼的明文訊息分成塊。 組成該塊的位根據特定方法進行轉換,該方法取決於建立的金鑰。

目前還沒有破解金鑰密碼的捷徑。 即使使用暴力攻擊也很困難,因為這需要猜測所有可能的金鑰,但隨著攻擊的進行,該過程根據金鑰的大小以指數級增長。 金鑰長度僅增加一位就會使破解密碼所需的工作量增加一倍。 透過建立更長的金鑰,可以使工作量超過實際的計算能力。 因此,破解這些密碼是可能的,但計算上不可行,需要數百年的時間或更長時間才能破解。

使用金鑰加密帶來的挑戰是,隨著網路成員數量的增加,所需的金鑰數量也會增加。 對於每對成員,必須建立一個新的共享金鑰。 隨著需要更多組合,建立唯一的金鑰變得更加複雜。 另一個挑戰是在兩個成員之間沒有安全通道的情況下,在兩個成員之間安全地建立金鑰。

公鑰加密

[編輯 | 編輯原始碼]

1976 年,惠特菲爾德·迪菲和馬丁·赫爾曼提出了公鑰加密的概念。 這個想法是兩個數學相關的金鑰,一個公鑰和一個私鑰。 這些金鑰是成對的,但在計算上不可能相互連線。 使用私鑰加密的訊息只能由公鑰解密,反之亦然。

當用戶選擇一個金鑰並使用接收者的公鑰加密訊息並將密文傳送給接收者時。 然後,接收者使用其私鑰解密密文以獲得金鑰。 私鑰保密,絕不傳送給其他使用者。 兩個人可以使用金鑰(也稱為會話金鑰)進行通訊。 訊息的機密性得到保證,因為除了接收者之外,沒有人能夠解密來自發起者的訊息。

確保訊息來自發件人的方法是使用數字簽名方案。 簽名應該便於使用者生成,但難以被其他人偽造。 數字簽名還可以與簽名的訊息內容相關聯。 訊息的真實性得到驗證,因為密文只能使用目標方的私鑰解密。

華夏公益教科書