密碼學(英語:Cryptography)可分為古典密碼學和現代密碼學。在西方語文中,密碼學一詞源於希臘語kryptós「隱藏的」,和gráphein「書寫」。古典密碼學主要關注資訊的保密書寫和傳遞,以及與其相對應的破譯方法。而現代密碼學不只關注資訊保密問題,還同時涉及資訊完整性驗證(訊息驗證碼)、資訊發布的不可抵賴性(數位簽章)、以及在分散式計算中產生的來源於內部和外部的攻擊的所有資訊安全問題。古典密碼學與現代密碼學的重要區別在於,古典密碼學的編碼和破譯通常依賴於設計者和敵手的創造力與技巧,作為一種實用性藝術存在,並沒有對於密碼學原件的清晰定義。而現代密碼學則起源於20世紀末出現的大量相關理論,這些理論使得現代密碼學成為了一種可以系統而嚴格地學習的科學。
密碼學是數學和電腦科學的分支,同時其原理大量涉及資訊理論。著名的密碼學者羅納德·李維斯特解釋道:「密碼學是關於如何在敵人存在的環境中通訊」,自工程學的角度,這相當於密碼學與純數學的差異。密碼學的發展促進了電腦科學,特別是在於電腦與網路安全所使用的技術,如存取控制與資訊的機密性。密碼學已被應用在日常生活:包括自動櫃員機的晶片卡、電腦使用者存取密碼、電子商務等等。
資料來源:Wiki
網路的蓬勃發展,為了保護資料安全,加密技術已不可或缺,電腦如何加密數據,就讓
小咩嘔心瀝血的圖來說明加密流程(行李箱畫好久 Orz)
羊把資料透過網路傳給虎
數據被不懷好意的人窺視
因此我們把資料加密成密文,加密的數據稱為『密文』(cipher text)
可以想像把資料放入上了鎖的保險箱
羊把保險箱傳給虎,虎將保險箱,開鎖拿出原本的資料
密文還原為原始數據(明文 plan text),這個動作稱為解密 (decryption)
因此即使被窺視,由於不知道怎麼打開保險箱,因此數據是安全的
對稱金鑰加密是密碼學中的一種加密法,是以轉換其中一個數字、字母或僅字串隨機字母,一個秘密金鑰會以特定的方式變更訊息裡面的文字或字母,例如更換字母相對位置(例如hello變成lohel)。只要寄件者與收件者知道秘密金鑰,他們可以加密和解密並使用這個資料。
對稱密鑰演算法(Symmetric-key algorithm)加密解密都使用同樣的金鑰,因此也稱為共用金鑰密碼系統(shared-key crypto system)
使用金鑰將資料進行加密
將加密後的保險箱傳送給接收方
接收方使用相同的金鑰還原資料
還有很多加密演算法,就不逐一介紹,列出比較常用的演算法
Note : 許多演算法因為一些原因如邏輯單一或金鑰過短等原因,已被列為不安全的加密演算法,因此不建議使用
公開金鑰加密(也稱為非對稱加密)是密碼學中的一種加密法,非對稱金鑰,是指一對加密金鑰與解密金鑰,某使用者使用加密金鑰加密後所獲得的資料,只能用該使用者的解密金鑰才能夠解密。如果知道了其中一個,並不能計算出另外一個。因此如果公開了其中一個金鑰,並不會危害到另外一個。因此公開的金鑰為公鑰;不公開的密鑰為私鑰。
公開金鑰密碼系統 (Public-key cryptosystem) 加密跟解密使用不同的金鑰 ,又稱『非對稱式加密系統』(asymmeric cryptosystem )
接收者先產生公鑰(Public-key)及私鑰 (Private-key 或 Secret-key)
把公鑰傳送給傳送方
傳送方使用收到的公鑰將資料進行加密
將加密的保險箱傳送給接收者,接收者使用私鑰解密,還原成原始數據
由於保險箱只能使用私鑰打開,因此即使拿到了公鑰也無法打開保險箱
介紹了常見的各種加密方式流程及觀念,以及有哪些演算法可用,畫這些圖真的是累死我了 XD
後面章節會介紹如何使用者些演算法