變色龍雜湊函式非常有意思。傳統加密雜湊函式是很難找到碰撞的。變色龍雜湊函式可以人為設下一個“弱點”:掌握了它就能輕鬆找到碰撞。就好比一扇上鎖的門,有對應的鑰匙就能透過。但是有誰吃飽了撐的故意設計弱化的雜湊函式呢?這就要涉及到一個伴隨因特網自始至終的信任問題,電子簽名。傳統電子簽名過程是先用雜湊函式把檔案過一遍生成摘要,再用非對稱加密裡的私鑰對摘要進行簽名,這樣其他人就能用對應的公鑰驗證檔案的雜湊有沒有變化。如果雜湊沒變化,那麼檔案就沒被更改。但是這種設計有它的不足。假設小明和小紅達成協議,小明將家族產業10%股份轉讓給小紅。簽了合同小名很擔心啊,如果小紅把這件事告訴別人怎麼辦?這時候就可以用變色龍函式進行簽名。小紅生成一個只有她才能找到碰撞的函式交給小明,小明再用這個函式來籤電子文件。這下小紅把簽名後的檔案丟給大家也沒人相信她了。為什麼呢?她掌握著雜湊函式的弱點,可以隨便生成雜湊碰撞啊。她把10%股份改成99%都能保證雜湊不會變,進而創造出新檔案本來就是小明籤的這種假象。因此出自小紅之手的檔案可信度為零。這個特性叫non-transferability,即兩者之間達成的信任不能轉到第三方。“你知道的太多了” 此時此刻成了真正的包袱。問題來了,小明抵賴怎麼破?如果小明死死咬定轉讓10%股份是小紅偽造,事實上只有1%呢?事實上小明也不能信口開河,他得提供對應的證據。證據就是雜湊碰撞。假設雙方達成的最初合同是A,而小紅將其篡改成了相同雜湊的A",那麼小明看到A"這份偽證之後一定能拿出最早那個A來並表明A和A"形成雜湊碰撞,否則A"就是真貨了。因為正常情況下小明無論如何也找不到碰撞,他就不能抵賴。這個特性叫non-repudiation。
變色龍雜湊函式非常有意思。傳統加密雜湊函式是很難找到碰撞的。變色龍雜湊函式可以人為設下一個“弱點”:掌握了它就能輕鬆找到碰撞。就好比一扇上鎖的門,有對應的鑰匙就能透過。但是有誰吃飽了撐的故意設計弱化的雜湊函式呢?這就要涉及到一個伴隨因特網自始至終的信任問題,電子簽名。傳統電子簽名過程是先用雜湊函式把檔案過一遍生成摘要,再用非對稱加密裡的私鑰對摘要進行簽名,這樣其他人就能用對應的公鑰驗證檔案的雜湊有沒有變化。如果雜湊沒變化,那麼檔案就沒被更改。但是這種設計有它的不足。假設小明和小紅達成協議,小明將家族產業10%股份轉讓給小紅。簽了合同小名很擔心啊,如果小紅把這件事告訴別人怎麼辦?這時候就可以用變色龍函式進行簽名。小紅生成一個只有她才能找到碰撞的函式交給小明,小明再用這個函式來籤電子文件。這下小紅把簽名後的檔案丟給大家也沒人相信她了。為什麼呢?她掌握著雜湊函式的弱點,可以隨便生成雜湊碰撞啊。她把10%股份改成99%都能保證雜湊不會變,進而創造出新檔案本來就是小明籤的這種假象。因此出自小紅之手的檔案可信度為零。這個特性叫non-transferability,即兩者之間達成的信任不能轉到第三方。“你知道的太多了” 此時此刻成了真正的包袱。問題來了,小明抵賴怎麼破?如果小明死死咬定轉讓10%股份是小紅偽造,事實上只有1%呢?事實上小明也不能信口開河,他得提供對應的證據。證據就是雜湊碰撞。假設雙方達成的最初合同是A,而小紅將其篡改成了相同雜湊的A",那麼小明看到A"這份偽證之後一定能拿出最早那個A來並表明A和A"形成雜湊碰撞,否則A"就是真貨了。因為正常情況下小明無論如何也找不到碰撞,他就不能抵賴。這個特性叫non-repudiation。