我們看完了『對稱式密碼學』跟『非對稱式密碼學』之後。
我們要來說說密碼學的另一個不亞於上面兩種重要性的Hash了。(Hash其實更重要!)
但一樣在進入章節之前,我想水個字累積一下稿量(誤。
來講講這個部分的的一些分類與特別。
其實Hash就像是文件的指紋一般。
我將資料輸入進Hash的算法後(無須其他的參數),會生產出長度固定的碼,而這個碼就是Hash的指紋。
而且只要少許的變動或不一樣,將會使整個Hash出來的指紋完全不同。
這有助於比對檔案的完整或是驗證資料,只需要短短的Hash碼就能驗證檔案是否完整,有些Hash能做資料修復。
使用Hash後能把很多的資料轉換成固定長度,能當成收尋索引,加快資料的搜索。
也可以當資料保密驗證,我不知道你的密碼,但我能算出Hash來比對,而這樣你的密碼就不會洩漏了。
不得不再提到本質的問題,對稱式的密碼學其實就是一般的加密。
而非對稱式一般都是用來傳輸,那Hash呢?
其實Hash不只單單能用來驗證,還有很多細節在裡面,而衍生出來的HMAC也是目前十分重要的機制,目前JWT也是使用了這個機制。
那來探討一下Hash的特性的:
嗯……這問題超難,因為任何都能成為Hash。
簡單的取10餘數,都是一種Hash。
連我們之前的加密演算都能算是一種Hash。
你想想能輸出固定長度,也能混亂資料,沒有Key也沒辦法還原,其實那些加密也能做『Hash』。
但安不安全、適不適合就是另一回事了。
這邊我這邊拿出別人整理過的Hash列表List of hash functions。
那我接下來會講解的幾個做個分類:
這下會使光是講Hash的部分,就會花費大量的時間……
畢竟其實密碼學也是一整個學期的課,密碼學的書其實不亞於那些專業科目的厚度。
我其實也簡化了很多數學上的細節、驗證、攻擊、破解、安全分析、猜想問題、潛在安全問題、算法更深入的寫法、論文中的詳細狀況等。
還沒有把密碼學裡的一些傳輸歷史跟理論、還有資訊安全相關的部分也想跟大家說說。
同時我本來後面有排目前實際在使用的加密演算實際應用的流程跟規範,並探討這些版本的修改與潛在的漏洞。
但我們不用擔心,還有真正的很多『大神』!!
我有看到同樣組別的參賽者有TLS詳解與實做、CTF的攻擊教學與分析、Cissp大神、數位鑑識、逆向工程等。
我相信大神會看到我這樣的小屁孩來寫這類文章後,直接跳出來寫真正專業的文章。
剩下交給他們~我就能耍廢了~~