密碼體制
對稱密匙
[編輯]對稱密匙密碼(symmetric-key cryptography)泛指傳訊人同收訊人用嘅密匙一樣嘅密碼體制。密匙係指用嚟幫手做加密同解密嘅額外資訊,例如圍欄密碼法同凱撒密碼法當中嘅 以及係彼利菲密碼法同維吉尼密碼法當中用到嗰啲關鍵字。喺實際應用上,用家梗要有啲方法傳達有關「密匙係乜」嘅資訊,收訊人先會有能力解密,通常係傳訊人同收訊人事先講好個用開嘅密匙,或者係傳訊人要傳信息之前講個密匙俾收訊人知。一路直至 1976 年中為止,世上嘅加密方法冚唪唥都係用對稱密匙做嘅[1]。
對稱密匙密碼可以分做兩大種:
- 組密碼法(block cipher)-呢種密碼法會對固定長度嘅位元做加密同解密;即係例如每 2 位元嘅數據做一組,段演算法會對每組分別做加密,如果手上淨係得其中一個位元嘅數據(另外嗰個位元仲未傳到過嚟),部機就會企咗喺度乜嘢都唔做[2];例子可以睇吓數據加密標準(Data Encryption Standard,DES)同進階加密標準(Advanced Encryption Standard,AES)[3]。
- 流密碼法(stream cipher)-呢種密碼法會對段密文嘅每個位元獨立噉做加密同解密;即係每次收到一個位元就會即場做加密或者解密,就算收唔到下一個位元嘅數據都唔會企喺度唔郁,頂櫳係將段唔完整嘅密文或者解密輸出傳俾個用家[4]。
- 問題
對稱密匙密碼成日俾人詬病話佢難以處理大規模組織(大型企業或者軍隊呀噉)嘅通訊:對稱密匙密碼要求做通訊嘅人個個手上都有條密匙,而點樣確保「啲成員個個都有密匙得嚟又冇安全漏洞」已經係一條撈絞得好交關嘅問題-大少少嘅組織閒閒地會有成千上萬咁多個成員,「俾個個成員手上都揸住條密匙」就難保唔會梗有幾個人口風唔夠密搞到條密匙外泄,但「個個成員手上嘅密匙都唔同」就會搞到有好多條密匙要記住(例如個組織有 1,000 個人,每對可能配對之間都有條密匙嘅話,淨係內部通訊就要用到成 499,500 條密匙)[註 1];除此之外,對稱密匙密碼要求通訊雙方信任對方,如果是但一個(因為惡意或者決策上嘅失誤)泄漏咗條密匙,另外嗰方就會跟住失去咗保護,呢樣嘢喺商業應用上係一條大問題[1]。
公開密匙
[編輯]公開密匙密碼(public-key cryptography)係因應對稱密匙密碼嘅劣處而喺 1976 年誕生嘅一種體制,係史上第一款「一條通訊用多過一條密匙」嘅密碼體制。同對稱密匙密碼唔同,公開密匙密碼會將密匙分做公開(public)同私人(private)兩組,當中前者會攞去周圍派俾啲用家(例如係一間企業啲客),後者淨係得控制個系統嗰一方(例如間企業啲高層)會知。技術性啲噉講嘅話,想像家陣有套密碼體制 ,個系統會用到兩條唔同嘅密匙[5][6]:
- 用家一定要能夠輕易噉計得出邊對密匙(加密匙 同解密匙 )係相配嘅。
- 喺運算上要簡單,即係用電腦行起上嚟唔使嘥好多系統資源。
- 最重要點:就算一個嘗試破解密碼嘅人就算清楚知道咗 、任何數量嘅對應明文同密文、以及係兩條密匙( 同 )當中其中一條,淨低冇俾佢攞到嗰條密匙依然係喺運算上極難搵得出嚟嘅(例如想像條密匙用電腦計要計成 100 年先計到出嚟;可以睇運算複雜度[7])。
- 設 做信息, 係密匙,,就算知道咗 , 都要係難以搵到出嚟嘅。
有咗個噉嘅系統,一位用家就可以想佢手上條解密匙保密-私人匙 ,同時又將自己條加密匙公開-公開匙 ,俾任何人隨意通過互聯網睇到 。想像家陣有班人想同嗰位用家進行私人通訊(例:成千上萬嘅客想向一間企業傳信息,問件產品應該點樣用),佢哋嘅個人電腦可以隨意噉攞到 ,用 將自己嘅信息(例:可能會包括信用咭號碼等嘅敏感資訊)做加密跟住傳送去位用家嗰度;位用家可以輕易噉(點 1 同 2)用 嚟解讀呢啲信息[5]。
- 優劣
公開密匙密碼解決到對稱密匙密碼嗰啲撈絞問題:喺公開密匙密碼呢種情況下,密匙嘅數量只會係用家數量嘅兩倍,每位用家一條 一條 ;而且因為 公開咗都唔會泄露 (點 3),所以 大可以交俾啲未必靠得住嘅人(例:一間企業唔能夠預自己啲客識密碼學曉保護自己手上嘅密匙);因為噉,同對稱密匙密碼比起嚟,公開密匙密碼比較啱用喺啲大得嚟又要同普羅大眾通訊嘅組織,例如廿一世紀初嘅大型企業同埋政府嘅各部門都會遇到「一般市民想用電郵向呢啲組織問嘢」等嘅情況[8][9]。
唯一問題係齋用呢種基本系統嘅話,用家(企業)唔能夠向外界(客)單向噉傳達秘密嘅信息。不過亦有進階啲嘅公開密匙密碼系統會用到「喺用傳訊方條私人匙做加密,再用收訊方條公開匙做加密,做到(因為用咗傳訊方嗰條私人匙)鑑別傳訊方身份」等嘅技術[8]。
- 功能分隔
值得一提嘅係,公開密匙密碼做嘅嘢係將保密系統同鑑別系統分開:喺對稱密匙密碼系統當中,一位收訊人能夠由收到嘅信息當中同時知道段信息嘅內容(保密)同埋傳訊人嘅身份(鑑別)-每位傳訊人都有相應嘅一條密匙,所以「對方用咗邊條密匙」能夠向收訊人同時透露傳訊人嘅信息內容同身份;公開密匙密碼就唔同,一位收訊人能夠由收到嘅信息當中同時知道段信息嘅內容,但因為會想向佢傳信息嘅人冚唪唥都會用同一條 ,所以佢唔能夠齋靠「對方用咗邊條密匙」嚟得知對方嘅身份,而係要靠進一步問對方嘅(例如)電話號碼同生日日期先會知對方身份-保密同鑑別分開咗做兩個唔同嘅功能[5]。
睇埋
[編輯]註釋
[編輯]攷
[編輯]- ↑ 1.0 1.1 Diffie, Whitfield; Hellman, Martin (November 1976). "New Directions in Cryptography" (PDF). IEEE Transactions on Information Theory. IT-22 (6): 644–654.
- ↑ Knudsen, Lars R.; Robshaw, Matthew (2011). The Block Cipher Companion. Springer.
- ↑ "FIPS PUB 197: The official Advanced Encryption Standard" (PDF). Computer Security Resource Center. National Institute of Standards and Technology.
- ↑ Matt J. B. Robshaw (1995). Stream Ciphers Technical Report TR-701, version 2.0, RSA Laboratories.
- ↑ 5.0 5.1 5.2 Stallings, William (1990). Cryptography and Network Security: Principles and Practice. Prentice Hall. p. 165.
- ↑ Diffie, Whitfield; Hellman, Martin (8 June 1976). "Multi-user cryptographic techniques". AFIPS Proceedings. 45: 109–112.
- ↑ Cryptography: Theory and Practice, 3rd Edition. (Discrete Mathematics and Its Applications), (2005), by Douglas R. Stinson, Chapman and Hall/CRC.
- ↑ 8.0 8.1 Diffie, W. (1988). The first ten years of public-key cryptography. Proceedings of the IEEE, 76(5), 560-577.
- ↑ Galbraith, S. D. (2012). Mathematics of public key cryptography. Cambridge University Press.