以前看總覺得密碼學是種神秘的數學,跟現實中的我們似乎扯不上關係,但是真正的情況卻是到處都需要密碼,正版軟體需要密碼、手機上網需要密碼、網路訊息傳送也需要密碼,從單純的自己隨便設一組英數碼,到複雜的數學函數算出來的對稱及非對稱性密碼,網路讓密碼無所不在,只是我們有沒有留意到罷了!
----------------------------------------------------------------------------------------------
第三季 第二十四集
背包問題<組合數學
Knapsack problem<combinatorial mathematics
Merkle-Hellman背包算法
Merkle –Hellman knapsack cryptosystem
其實看到組合數學幾個字心中就隱隱作痛,因為那似乎就是害我數學被當掉的原因之一,而背包問題就是屬於組合數學的問題之一,假如你有一個背包要帶去旅行,在自己能負擔的重量下盡可能拿最有價值的物品,那麼你就必須替所有物品標上價值及重量,這樣才知道什麼才是最需要帶的東西。
而Merkle-Hellma背包算法則是跟網路加密有關,假設你有一則訊息準備傳送,但是傳送途中不希望其它人能知道訊息內容(如銀行帳密之類的),那麼你就需要一對加密密碼以及解密的鑰匙,那就跟一般寄信人越不想收信人以外的第三方知道其內容,越是會在信封上動手腳的道理一樣(像是蓋印泥或信封不好拆解之類的)。
加密方式有百百種其中又分對稱密鑰加密、非對稱加密(公開金鑰加密),顧名思義對稱密鑰加密的意思就是兩人持有同一把鑰匙,一旦訊息被攔截了兩人的訊息恐將一起被破解,而非對稱加密則是兩人持有不同把鑰匙解密,即便訊息被攔截也不容易被破解。
而背包算法則是使用公開金鑰加密的概念,算法則是假設一個背包(封包)內含(2,3,6,12,24,48)等數,知道了總和為86,也知道封包內的數字內容,自然知道2+12+24+48的算式,但是情況如果顛倒,不知道封包內容是什麼,但只有總和為86,那麼能算出封包內的數字嗎?答案可能非常困難。
總結到最後我已經不知道我在寫啥了,怎麼連寫了兩個關於網路加密的東西,想想以前國中電腦課最多教教開機、上網、列印資料,什麼封包、網路遮罩、IP位址等用語對我是天方夜譚,決定下一篇一定不要寫跟網路有關的數學了。
參考資料