區塊鏈推動密碼學發展?

區塊鏈推動密碼學發展?

最近專員發現,很久沒跟大家聊一下純技術的東西了,然後專員恰好最近在看一些密碼學的東西,專員也想借這個機會聊一下這個東西,但是專員得承認專員不是專業做密碼學,專員一直很佩服那些同事,能把那些密碼學共識看的很溜的人,每當那個時候專員總覺得那些人的高數真的學的是好,各種公式的推到數學證明都是瞭然於心。當然專員跟大家講的時候,要不會講這麼一些個公式以及相關算法推導原理,其實主要跟大家聊一下每種算法作用比較相關優缺點介紹,這樣的話,大家可以更好的瞭解到底區塊鏈的密碼學的應用是在哪一塊了。

專員之前大概跟大家描述過區塊鏈的密碼學應用在哪一塊,比如說Hash算法,包括我們算區塊鏈hash,交易hash等等,其實簡單的來講,在區塊鏈的世界中,Hash其實就是唯一的身份標識,比如說我們經常用到的以太坊的地址,其實就是我們的公鑰地址Hash之後,然後再經過處理而算出來的。

區塊鏈推動密碼學發展?

我們進入正題:

1

什麼是Hash函數

其實就是單向散列函數,如下圖所示,一個Hash函數主要有一個輸入和一個輸出,Hash函數(單向散列函數)可以根據你的消息,算出一個散列值,並且最重要的是單向的,一般情況下來說,只能由消息算出散列值,通過散列值算出消息是基本不可能的。當然不排除用特別特別牛逼的量子計算機暴力求解,是有可能的。

另外,單向散列函數還有一個比較大的特點,函數算出來的散列值的長度和消息的長度無關。無論消息是1字節,還是100M,甚至是100G的數據,單向散列函數都會計算出固定長度的散列值,只是不同長度的數據計算的時間不同而已, 比如SHA-3標準,Keccak256的實現,以太坊用的應該就是這個單向散列函數為例,它所計算出的散列值的長度永遠是256比特,也就是32Byte。

專員有在實際工作環境中碰到過,用Hash函數算一個非常大的文件的散列值,還是花了比較多的時間的。所以,由於Hash函數的這個特性,一般我們都會把某個文件的Hash值當做指紋,用這個來判斷他究竟是不是原來的那個文件,有沒有被修改等等。

小結

現在一般來說,市面上的Hash算法有,MD4、MD5、SHA-1、SHA-256、SHA-384、SHA512、RIPEMD-160、RIPEMD-160等等,其中MD4、MD5、SHA-1已經被確認不安全了,還有我們國家自己的hash算法SM3,專員也是非常推崇的,畢竟我們自己國產化,專員也建議大家如果有從事IT行業的同學不要再用這三個不安全的hash算法了。

區塊鏈推動密碼學發展?

除了單向散列函數以外,其實最重要的就是,對稱加密和非對稱加密這兩種加密算法的類型了。下面的表格是專員拿對稱加密和對稱加密的一些比較。

區塊鏈推動密碼學發展?

專員用最簡單的話來跟大家講一下什麼是對稱加密,什麼是非對稱加密,其實挺好理解的。

2

對稱加密

就是加密方和解密方兩邊的密鑰是一致的,這樣的話,對於密鑰管理的難度就是比較大的,在公開的互聯網絡中,我們如何通過一個安全的方式來傳遞這個對稱密鑰也是一個比較大的問題,但是就像上面這個表格所說的,對稱加密的速度會比非對稱加密塊很多,常見的對稱加密有DES,3DES,AES,當然也有我們自己的中國標準

SM4,但是DES已經很不安全了,已經被攻破,對於我們來說也沒必要繼續去使用DES這個算法了。

3

非對稱加密

非對稱加密其實就是有兩把不同的密鑰,我們成為公鑰和私鑰,公鑰是大家都可以知道對外暴露的,私鑰是隻有自己知道的,不能對外暴露的。比如說我們要進行非對稱加密,加入A想給B發送一個加密消息,A就會那B的公鑰進行加密,這樣的話,只有B拿自己的私鑰才能解出來明文,其他人拿到這個加密消息也是沒用的,無用功。

但是非對稱加密也通常被用來數字簽名,數字簽名專員之前說過,是為了證明這個消息是我自己發出去的,並且證明沒有被篡改。

因此,按照這個邏輯的話,A想要給B發送一個消息,並且證明這個消息是我發的,A就得拿自己的私鑰對這個消息進行簽名,而B受到消息之後,便利用A的公鑰進行驗籤,驗籤通過後才能證明消息的可靠性,並且消息是A發的。

文末

因此,專員覺得,其實密碼學這個東西很神奇,是一個很數學的東西,他在IT的領域是至關重要的,沒有密碼學技術的保障可能會導致我們全部的信息都暴露在空氣中,沒有任何一點安全保證,而區塊鏈正是很好的利用密碼學技術來保證區塊鏈的安全問題也使黑客成功的攻擊整個區塊鏈網絡。專員也在不斷的學習密碼學技術,希望以後能跟大家有更好的分享。


分享到:


相關文章: