加密就是將一份檔案使用金鑰,讓其變成其他人無法讀取的檔案、文字,加密前的資訊我們就稱為「明文」,而加密過後則稱為「密文」,我們會運鑰匙將其打開的這個過程即為解密。
而加密的方式就是密碼演算法,分為共用金鑰密碼(加密和解密是同一個鑰匙,也稱為私密金鑰),而公開金鑰密碼就是金鑰配對。
共用金鑰:
加密解密都是一樣的鑰匙
公開金鑰:
用兩把金鑰做成金鑰配對,加密、解密屬於不同隻鑰匙
無法通用
下圖為金鑰配對的加密與解密:(參考圖片來自維基百科)
如圖,今天Alice如果想傳訊息給Bob,就必須使用Bob的公鑰加密後將密文傳給Bob,Bob即可用自己的私鑰去解密。(非對稱運算)
但由於速度會比較慢,因此我們會使用混合對稱式加密(Hybrid cryptosystem)
如下圖: 參考圖片節自Medium https://aikawa0617.medium.com/%E5%AF%86%E7%A2%BC%E5%AD%B8-%E4%BA%8C-%E7%8F%BE%E4%BB%A3%E5%AF%86%E7%A2%BC%E5%AD%B8-4894326d357b
假設今天Alice 要傳訊息給 Bob
Alice會透過對稱式演算法,產生出一把對稱式加密用的金鑰(session key) 接著 Alice 使用 Bob 的公鑰,將這把session key加密並跟用session key加密後的訊息一併傳給 Bob
Bob 收到後,使用自己的私鑰解密,取得這把session key,在解密訊息,之後雙方訊息的往來,都使用這把session加解密傳訊。
明天再來對各種密碼的演算法進行其他探討。
參考資料:維基百科、區塊鏈創新實用手冊、圖解區塊鏈的工作原理與機制