密碼學&編碼概論

大社[3]

你知道為什麼不講現代密碼學嗎
因為現代密碼學是數學.jpg

古典密碼學

The 統計學

什麼是密碼?

密碼學英文「Cryptography」,源於希臘文「隱藏的」字根

將資訊隱藏起來,只給想看的人看,在確保資訊安全的情況下傳遞資訊

基礎名詞解釋

明文

你想加密的文字

加密

將明文變成別人看不懂的樣子

反過來稱為解密

密文

別人看不懂的樣子

替換密碼 - 凱薩密碼

最簡單的替換密碼。

 

將字母變換為 0~25 ,接著選定一個特定的數 k ,將所有數字 + k 後取 26 的餘數。相當於字母表右移 k 。

 

解碼時,我們需要那個 k 值,然後打一張左移 k 之後的字母表,將密文對照回明文

 

這麼做在凱薩那個年代很有用,因為識字率不高,但在現在這麼做顯然沒用。以英文來說,最多試過 25 種組合後可以很輕鬆地解出一段密文

單一字母替換密碼

A B C D E F G H I J
T H E Q U I C K B R
K L M N O P Q R S T
O W N F X J M P S V
U V W X Y Z
L A Z Y D G
  • 如果用有規律的東西會被發現,那就用沒有規律的東西就好啦
  • 可能性 26! = 4e26 ,有可能被暴力破解嗎?

換位密碼

  • 古典密碼另一個重要的概念
  • 將原文打散

A

P

P

L

E

換位密碼

  • 古典密碼另一個重要的概念
  • 將原文打散

A

P

P

L

E

換位密碼

  • 古典密碼另一個重要的概念
  • 將原文打散

A

P

P

L

E

  • 怎麼和對方溝通替換方式?
  • 鐵軌法:加密、解密簡單
  • 如果換的範圍不大很容易破解

破解單一字母替換密碼

  • 當密文不夠長(例如只有一個單字)顯然沒輒
  • 已知明文攻擊
  • 未知明文的情況下?

統計學

  • 許多以字母為基礎的語言中,會呈現一個特定的分布
  • 在密文足夠長的情況下,這個方式滿有效的
  • 頻率分析法
  • 統計學是古典密碼的基石

古典密碼的巔峰 - 恩尼格瑪

恩尼格瑪一開始作為商用密碼機出現,後來在二戰時被德國納粹改良,作為軍事密碼機使用

恩尼格瑪的破解對於二戰有關鍵性的影響,在許多重要戰役都有關鍵作用

大致流程

接線板

將部分字母互換

轉輪組

實現字母表

反射板

將訊號反射,並保證不會加密成相同字母

接線板

  • 在字母表中,選特定幾組交換

A

B

C

D

E

F

G

H

接線板

  • 在字母表中,選特定幾組交換

A

B

C

D

E

F

G

H

接線板

  • 在字母表中,選特定幾組交換

A

B

C

D

E

F

G

H

轉輪

  • 一個字母表
  • 輸入 -> 轉換 -> 輸出
  • 可以反著用

轉輪組

  • 可轉動
  • 每按一次鍵,右轉輪轉動一次
  • 轉滿一圈輪中間,接著換左邊,類似時鐘的秒、分、時

轉輪組

  • 每一個狀態就是 原始字母->字母表 -> 字母表 -> 字母表 -> 輸出
  • 每轉一次就換一次表

反射板

  • 類似只有半邊的轉輪
  • 吃一個輸入,丟一個輸出
  • 全部字母兩兩互換
  • 保證不會加密成同個字母

1

原始字母

2

接線板

3

右->中->左轉輪

5

逆向左->中->右轉輪

4

反射板

6

接線板->輸出

  • 一字一換表
  • 安全性高、可能性多
  • 同狀態下的輸出丟進去會變成輸入

優點

  • 接線板的系統可被獨立解決
  • 用的人笨,擅自添加「安全性的操作」

缺點

編碼

Encoding

二進位

  • 在電腦中,所有東西以二進制儲存
  • 傳送字母顯然很不方便
  • 要把它轉換成數字/二進位

字元直接換二進位?

  • 有啊,摩斯密碼
  • 但摩斯密碼可以用聲音的空格表示兩個字母

不能空格

  • ASCII code
  • 固定用 7 個 bit 儲存一個字元
  • 在 C, C++ 中字元就是用這個

更短的編碼?

  • 顯然, ASCII 編出來的碼並不是最短的
  • 給你 10 分鐘組內討論,如何編出更短的碼
  • 限制:僅英文 A~Z,隨機句子
  • 不要偷翻下一頁,這個沒有獎勵
  • 提示:可以用英文字母出現的頻率等等來思考

"Yes, " I said to the little prince.

"The house, the stars, the desert-- what gives them their beauty is something that is invisible! "

編碼目標句子

用你們討論出來的方式編碼後,在群組打出你們組耗用了多少位元

比較多東西的編碼

現代密碼

DES died a few years ago.

DSE(資料加密標準)

  • 與古典密碼不同的是,香儂提出了有關資訊的一些基礎理論
  • 古典密碼的問題很多,包含已知明文就可以大機率獲得密鑰等
  • 香儂提出了解法:擴散、混淆

擴散

  • 讓明文與密鑰的關係變得複雜

混淆

  • 讓密文與密鑰的關係變得複雜

DES

  • DES 算法大量使用這兩個方法
  • 因為不是線性的,所以套多層更安全
  • 最終被破解不是因為發現新的有效算法,而是因為電腦進步太快被暴力破解了.jpg
  • 後繼者 AES 被懷疑有其他問題,因為採用很多規律的數學結構,但至今似乎仍沒有有效算法可以破解

RSA

  • 以數論加密,如果要破解只能找到快速質因數分解的算法
  • 在可應用的量子電腦出現以前,幾乎不可能破解

RSA 的運作

  • 私鑰不可以洩漏
  • 公鑰給那些想要傳訊息給自己的人
  • 傳訊息的人通過公鑰加密,自己透過私鑰解密

密碼&編碼

By 海之音

密碼&編碼

大社課[3]

  • 93