本文主要想透過簡單的方式來介紹密碼學,主要想透過為什麼 (why) 和 如何做 (how) 為出發點來介紹,也會詳盡的介紹其背後的數學理論,用得最多的有代數 (Algebra) 及數論 (Number Theory)。
在密碼學中,主要分為兩種密碼系統,對稱式密碼學 (Symmetric-key Cryptography)與非對稱式密碼學 (Asymmetric-key Crptography),同時非對稱式密碼學又稱公開金鑰密碼學 (Public-key Cryptography),以下將進行簡單的介紹。
簡單來說對稱式的加解密是透過"同一把"密鑰 (secret-key)來達成通訊,在兩個人進行通訊(或多人)的情況中,都是經由"同一把"密鑰來把明文 (plaintext) 加密,或是把密文 (ciphertext) 解密。
著名的對稱式密碼演算法有 ,並且要搭配操作模式 (mode of operation),有機會再為大家一一介紹。
種種因素和考量,人們有了想法,有沒有可能加密和解密是不同把密鑰呢? 答案是有的,也就是我們接下來要介紹的非對稱式密碼系統。
在我們進入非對稱式密碼系統的世界中,我們先不講出公鑰和私鑰 (key-pair)的概念,我們思考一個情境,Alice 和 Bob 手中各有兩把不一樣的鑰匙,記做 ,假設有一個保險箱上有兩個鎖頭,我們可以透過把 plaintext 鎖入保險箱中來模擬加密行為,如何在不在各自需要拿到對方的密鑰前提下完成加解密呢?
這個例子,便是一個簡單的非對稱式密碼的實現 (當然上述運輸保險箱只是為了描述 xd)。實際上非對稱式的密碼系統,每一個用戶 (這裡假設 : user A) 手上會有一組 key-pair , 分別對應到私鑰及公鑰,私鑰及是使用者自己需要保管好的,只要私鑰經過洩露了,公鑰也隨之被破解。而其公鑰便是可以公開給其他使用者的資訊,藉由公開的公鑰,可以和其他使用者進行安全的通訊。
既然有了非對稱式的密碼系統,那是不是許有問題都被解決了呢? 其實不然,非對稱式的密碼系統出現引發了後續很多的問題,像是著名的中間人攻擊(man-in-the-middle-attack),及後面的數位簽章 (Digital Signature)、公開金鑰基礎建設(Public Key Infrastructure, PKI)…等等。有機會將為各位一一說明,但再繼續探討下去之前,我們需要一個數學的工具,下次將會為大家介紹一些基本的數學。
Cryptography
密碼學