對稱密匙嘅圖解：家陣有兩個人－**波巴**同**愛麗絲**－要通訊，波巴想傳嘅明文係**哈佬！**，加密同解密都係用同一條匙嚟做。公開密匙嘅圖解 **1**：愛麗絲有條公開匙，公開匙個個都睇到，波巴可以用公開匙加密佢段明文，段明文要用愛麗絲條私人匙先解到密。公開密匙嘅圖解 **2**：愛麗絲傳信息，用佢條私人匙幫段掕住嘅額外信息加密；任何人都可以用公開匙解讀額外信息，知道傳訊人揸住愛麗絲條私人匙－嗰段額外信息好似個簽名噉。
**密碼體制**mat6 maa5 tai2 zai3（**cryptosystem**）喺密碼學上係指一套用嚟做加密同解密嘅系統，講明嗮成個系統入面用咗乜嘢密匙同埋每一串密文碼。

對稱密匙
----

內文：對稱密匙密碼
對稱密匙密碼（symmetric-key cryptography）泛指傳訊人同收訊人用嘅密匙一樣嘅密碼體制。密匙係指用嚟幫手做加密同解密嘅額外資訊，例如圍欄密碼法同凱撒密碼法當中嘅 {\displaystyle n} 以及係彼利菲密碼法同維吉尼密碼法當中用到嗰啲關鍵字。喺實際應用上，用家梗要有啲方法傳達有關「密匙係乜」嘅資訊，收訊人先會有能力解密，通常係傳訊人同收訊人事先講好個用開嘅密匙，或者係傳訊人要傳信息之前講個密匙俾收訊人知。一路直至 1976 年中為止，世上嘅加密方法冚唪唥都係用對稱密匙做嘅。

對稱密匙密碼可以分做兩大種：

* 組密碼法（block cipher）－呢種密碼法會對固定長度嘅位元做加密同解密；即係例如每 2 位元嘅數據做一組，段演算法會對每組分別做加密，如果手上淨係得其中一個位元嘅數據（另外嗰個位元仲未傳到過嚟），部機就會企咗喺度乜嘢都唔做；例子可以睇吓數據加密標準（Data Encryption Standard，DES）同進階加密標準（Advanced Encryption Standard，AES）。
* 流密碼法（stream cipher）－呢種密碼法會對段密文嘅每個位元獨立噉做加密同解密；即係每次收到一個位元就會即場做加密或者解密，就算收唔到下一個位元嘅數據都唔會企喺度唔郁，頂櫳係將段唔完整嘅密文或者解密輸出傳俾個用家。

問題
對稱密匙密碼成日俾人詬病話佢難以處理大規模組織（大型企業或者軍隊呀噉）嘅通訊：對稱密匙密碼要求做通訊嘅人個個手上都有條密匙，而點樣確保「啲成員個個都有密匙得嚟又冇安全漏洞」已經係一條撈絞得好交關嘅問題－大少少嘅組織閒閒地會有成千上萬咁多個成員，「俾個個成員手上都揸住條密匙」就難保唔會梗有幾個人口風唔夠密搞到條密匙外泄，但「個個成員手上嘅密匙都唔同」就會搞到有好多條密匙要記住（例如個組織有 1,000 個人，每對可能配對之間都有條密匙嘅話，淨係內部通訊就要用到成 499,500 條密匙）；除此之外，對稱密匙密碼要求通訊雙方信任對方，如果是但一個（因為惡意或者決策上嘅失誤）泄漏咗條密匙，另外嗰方就會跟住失去咗保護，呢樣嘢喺商業應用上係一條大問題。

公開密匙
----

內文：公開密匙密碼
公開密匙密碼（public-key cryptography）係因應對稱密匙密碼嘅劣處而喺 1976 年誕生嘅一種體制，係史上第一款「一條通訊用多過一條密匙」嘅密碼體制。同對稱密匙密碼唔同，公開密匙密碼會將密匙分做**公開**（public）同**私人**（private）兩組，當中前者會攞去周圍派俾啲用家（例如係一間企業啲客），後者淨係得控制個系統嗰一方（例如間企業啲高層）會知。技術性啲噉講嘅話，想像家陣有套密碼體制 {\displaystyle T}，個系統會用到兩條唔同嘅密匙：

1. 用家一定要能夠輕易噉計得出邊對密匙（加密匙 {\displaystyle e} 同解密匙 {\displaystyle d}）係相配嘅。
2. {\displaystyle T} 喺運算上要簡單，即係用電腦行起上嚟唔使嘥好多系統資源。
3. **最重要點**：就算一個嘗試破解密碼嘅人就算清楚知道咗 {\displaystyle T}、任何數量嘅對應明文同密文、以及係兩條密匙（{\displaystyle e} 同 {\displaystyle d}）當中其中一條，淨低冇俾佢攞到嗰條密匙依然係喺運算上極難搵得出嚟嘅（例如想像條密匙用電腦計要計成 100 年先計到出嚟；可以睇運算複雜度）。
4. 設 {\displaystyle x} 做信息，{\displaystyle k} 係密匙，{\displaystyle y={T\_{k}}(x)}，就算知道咗 {\displaystyle y}，{\displaystyle x} 都要係難以搵到出嚟嘅。

有咗個噉嘅系統，一位用家就可以想佢手上條解密匙保密－私人匙 {\displaystyle d}，同時又將自己條加密匙公開－公開匙 {\displaystyle e}，俾任何人隨意通過互聯網睇到 {\displaystyle e}。想像家陣有班人想同嗰位用家進行私人通訊（例：成千上萬嘅客想向一間企業傳信息，問件產品應該點樣用），佢哋嘅個人電腦可以隨意噉攞到 {\displaystyle e}，用 {\displaystyle e} 將自己嘅信息（例：可能會包括信用咭號碼等嘅敏感資訊）做加密跟住傳送去位用家嗰度；位用家可以輕易噉（點 1 同 2）用 {\displaystyle d} 嚟解讀呢啲信息。

優劣
公開密匙密碼解決到對稱密匙密碼嗰啲撈絞問題：喺公開密匙密碼呢種情況下，密匙嘅數量只會係用家數量嘅兩倍，每位用家一條 {\displaystyle e} 一條 {\displaystyle d}；而且因為 {\displaystyle e} 公開咗都唔會泄露 {\displaystyle d}（點 3），所以 {\displaystyle e} 大可以交俾啲未必靠得住嘅人（例：一間企業唔能夠預自己啲客識密碼學曉保護自己手上嘅密匙）；因為噉，同對稱密匙密碼比起嚟，公開密匙密碼比較啱用喺啲大得嚟又要同普羅大眾通訊嘅組織，例如廿一世紀初嘅大型企業同埋政府嘅各部門都會遇到「一般市民想用電郵向呢啲組織問嘢」等嘅情況。

唯一問題係齋用呢種基本系統嘅話，用家（企業）唔能夠向外界（客）單向噉傳達秘密嘅信息。不過亦有進階啲嘅公開密匙密碼系統會用到「喺用傳訊方條私人匙做加密，再用收訊方條公開匙做加密，做到（因為用咗傳訊方嗰條私人匙）鑑別傳訊方身份」等嘅技術。

功能分隔
值得一提嘅係，公開密匙密碼做嘅嘢係**將保密系統同鑑別系統分開**：喺對稱密匙密碼系統當中，一位收訊人能夠由收到嘅信息當中同時知道段信息嘅內容（保密）同埋傳訊人嘅身份（鑑別）－每位傳訊人都有相應嘅一條密匙，所以「對方用咗邊條密匙」能夠向收訊人同時透露傳訊人嘅信息內容同身份；公開密匙密碼就唔同，一位收訊人能夠由收到嘅信息當中同時知道段信息嘅內容，但因為會想向佢傳信息嘅人冚唪唥都會用同一條 {\displaystyle e}，所以佢唔能夠齋靠「對方用咗邊條密匙」嚟得知對方嘅身份，而係要靠進一步問對方嘅（例如）電話號碼同生日日期先會知對方身份－保密同鑑別分開咗做兩個唔同嘅功能。

睇埋
--

* 密碼協議

註釋
--

1. ↑  廿世紀初嘅組織用「淨係俾高層管理人員攞密匙」嘅做法嚟做折衷，不過喺實際應用上都係成日會撞到問題。

攷
-

1. 1 2  Diffie, Whitfield; Hellman, Martin (November 1976). "New Directions in Cryptography" (PDF). *IEEE Transactions on Information Theory*. IT-22 (6): 644–654.
2. ↑  Knudsen, Lars R.; Robshaw, Matthew (2011). *The Block Cipher Companion*. Springer.
3. ↑  "FIPS PUB 197: The official Advanced Encryption Standard" (PDF). Computer Security Resource Center. National Institute of Standards and Technology.
4. ↑  Matt J. B. Robshaw (1995). *Stream Ciphers Technical Report TR-701*, version 2.0, RSA Laboratories.
5. 1 2 3  Stallings, William (1990). *Cryptography and Network Security: Principles and Practice*. Prentice Hall. p. 165.
6. ↑  Diffie, Whitfield; Hellman, Martin (8 June 1976). "Multi-user cryptographic techniques". *AFIPS Proceedings*. 45: 109–112.
7. ↑  *Cryptography: Theory and Practice*, 3rd Edition. (Discrete Mathematics and Its Applications), (2005), by Douglas R. Stinson, Chapman and Hall/CRC.
8. 1 2  Diffie, W. (1988). The first ten years of public-key cryptography. *Proceedings of the IEEE*, 76(5), 560-577.
9. ↑  Galbraith, S. D. (2012). *Mathematics of public key cryptography*. Cambridge University Press.

|  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

| * 睇
* 傾
* 改
密碼學 |
| --- |
| 研究「點樣寫低秘密嘢」嘅學問 |
| **基本概念**
* 敵人
* 編碼
* 加密同解密
* 明文同密文
* 鑑別
* 密碼協議
* 隱寫術
* 量子密碼學
* 密碼學史（古典 cipher · 啞謎機）
 |
| **Cipher** 同**密碼基元**
* 換位法同替代法
* 圍欄密碼法
* 凱撒密碼法
* 彼利菲密碼法
* 維吉尼密碼法
* 一次性密碼本
* 多表置密碼法
* 組密碼法同流密碼法
* 多重加密
* 乘積密碼法
* 密匙（密匙延伸）
* Nonce
* 暗門函數
* 密碼雜湊函數
 |
| **密碼體制**
* 對稱密匙密碼（數據加密標準 · 進階加密標準）
* 公開密匙密碼（RSA 密碼系統）
* 端到端加密
* 區塊鏈
* 資訊理論安全性
 |
| **密碼分析**
* 頻率分析
* 通信量分析
* 攻擊模型（唯密文攻擊 · 窮舉攻擊）
* 重送攻擊
* 運算複雜度
 |
| **相關技術**
* 電腦保安
* 網絡攻擊
* 勒索軟件
* 產品序號同註冊機
* 數碼簽署
* 信息鑑別碼
* 密碼病毒學
* 通訊（安全通訊管道）
* 資訊系統
* 軍事情報
* RNG
* Crypto
 |
| **拉雜相關**
* 電腦科學
* 應用數學
* 資訊理論
* 資訊戰
* 黑客
* 質數
* 複製保護同代碼難讀化
* 數碼鬅客
 |

 |