Page 53 - 清流雙月刊 NO.34
P. 53
MJIB 生活中的資安
Output 那麼在資訊科技裡,想想什麼運算可 這裡我們看到雖然加減乘除在我們生
以這樣呢?回到剛才所談的 HASH,要將 活中很有用,但是在做 HASH 時卻派不
10 段 100 公尺的訊息疊起來,還是 100 公 上用場。因為在電腦中是數位型態存在,
尺的長度,用加法可以嗎?加法不行;乘 所以各訊息的加與乘運算會增加訊息的長
法可以嗎?乘法更誇張,長度會變得更大。 度,行不通的。然邏輯運算的 OR、AND、
這是很有趣的狀態。另類思維裡,我們來 NOT,以及它們的變化 XOR 與 XNOR,卻
思考一下,訊息拆成一段一段,加的不行, 反而發揮最大的效果。也就是說,當將長
乘的不行,有一個運算叫「OR」,也有 度相同的訊息做邏輯運算時,並不會增加
「AND」,還有一個叫「NOT」,這 OR、 原訊息的長度,這項特質造就了 HASH 的
AND、NOT 是布林(Boolean)運算裡的 「神奇」。回顧剛剛說到的「一個訊息有
邏輯運算基本「三兄弟」。這三兄弟的邏 1,000 公尺長」,若目標為縮短為「1 公
輯運算子還可以變出另外兩種:「XOR」 尺」,那麼就將每 1 公尺剪成一段一段,
HASH 可把大量的資料變小後再依後續資安的需求做處理。
與「XNOR」,得以加速電腦的運算速度。 即能裁剪成 1,000 段,將這些都疊起來,
相疊裡的運算都採用邏輯運算,那麼原
HASH 為什麼 HASH 這麼神奇,可以把大 1,000 公尺的訊息不就可以準確地濃縮成所
設定目標的「1 公尺」長度,變得更短了。
量的資料變得那麼短小呢?讓我們想像一
這個 HASH 雖然神奇,卻也平易近 至此,是否覺得 HASH 雖是神奇但觀念簡
下,若一個訊息有 1,000 公尺這麼長,要
人、出身平凡呢!在我們談資訊安全的過 單而平易近人呢!
將它變得很短,例如變成 100 公尺,那是
程當中,依需求有時候要將訊息做加密的
不是可以把每 100 公尺剪成一段一段,剪
「保護」或簽章的「鑑定」處理。但如果 HASH 的原理這麼簡單,那 HASH 的
成 10 段,將這些都疊起來,那原 1,000 公
是一本書我們要做加密/簽章的處理,因 種類有那些呢? HASH 並不是只有一種,
尺的訊息不就可以縮成只剩 100 公尺的長
為每個字都很重要,所以不能只處理書裡 就像這世界上的汽車難道只有「TOYOTA
度!那有沒有什麼運算的方法,可以讓他
面一部分的內容,因為你認為不重要的也 (豐田)」這種品牌的汽車嗎?當然還有
們疊起來還是 100 公尺呢?而且要精準,
許他人覺得很重要!所以書裡面的內容全 「FERRARI(法拉利)」品牌的汽車(跑
不能差一絲一毫。就像搬家的時候,冰箱
部都要做處理、保護,這時候就需要全部 車)。在 HASH 的模式與基本原理下,當
比門大一點點,就是沒有辦法搬進去,所
做 HASH,不能厚此薄彼。這就是 HASH 布林運算裡的基本「三兄弟」:OR、AND、 然可有許多製作的方式/品牌,而 HASH
以要懂得變通。變通之一,把門的螺絲卸
存在的價值,不論資料量多大,都可以透 NOT。(Photo Credit: Cecelia Vetter, https://commons. 的製作演算法就有「MD5」還有「SHA」。
掉,拆掉門,然後把冰箱搬進去,再把門 wikimedia.org/wiki/File:Diagram_Explaining_Boolean_
過 HASH 把資料量變小然後再依後續資安 Operators.png)
組裝回來。
的需求做處理,讓運作非常有效率。
50 清流雙月刊 No.34 JUL. 2021 51