初步理解非對稱加密

作者:蘇江,首發(fā)于《區(qū)塊鏈生存訓練》飯團


首先,傳統(tǒng)的加密方式肯定是對稱加密。

即:我向你發(fā)送一串信息,我用一定的規(guī)則(算法)把它加密,你接收到信息后,用同樣的的算法逆向解密。

明顯,這種方法必須只有你我知道這個算法規(guī)則,才能保證信息的安全。

但是有個問題,假設你我素未謀面,而且相距甚遠,不能悄悄話, 我可以向你傳送加密的消息,但是如何把加密的方法(算法)告訴你呢?不然你不知道算法規(guī)則你也無法解密,我也不可能直接就把解密方法直接發(fā)送給你,因為怕被截獲。那么,難道我得把加密方法再次加密?加密方法的加密方法如何再約定,這就成了一個循環(huán)的問題...

對稱加密需要雙方提前商定好解密方法,即保存好約定的密鑰,一旦密鑰被泄露,這種保密方法就不再安全,需要協(xié)商使用新的密鑰。

如果兩個人擴大成多個人,保存和傳遞密鑰就更比較麻煩,每次協(xié)商一個密鑰,復雜性更高,同時也有更大安全性的風險,如果一個人的密鑰泄露,那么整個群體的加密方式就失效了。

對稱加密有這種固有的缺點,直到1977年,一種非對稱加密的方法被設計了出來。

比如,我想發(fā)消息給你,于是,你把加密方法(公鑰)告訴我,甚至公開給大家,但你接受到消息之后,卻只有你自己(通過私鑰)才能解密,大家盡管擁有你的公鑰卻沒法解密,

這是怎么做到的呢?

這里引入上一個概念:哈希算法。

哈希算法有一個顯著的特點:

  • 單向加密,不可逆。

即你無法通過結(jié)果值來逆向推導出最初值。

哈希算法是一種通過輸入任意長度字符,生成固定長度字符輸出的不可逆的算法。

公鑰與私鑰的關系就是:私鑰經(jīng)過單向的計算,生成公鑰。

公鑰就是由私鑰經(jīng)過類似哈希運算算法所得,即你無法通過公鑰來逆向推導出私鑰,但私鑰擁有者卻可以通過哈希運算來生成公鑰。

在非對稱加密算法中,主要有這兩種典型的代表:

  • RSA算法
  • 橢圓曲線算法

RSA算法的原理也很簡單:

比如,任意生成一個200位的數(shù)字,將他分解成兩個素數(shù)的乘機。我們知道,兩個素數(shù)相乘是非常容易的,當是根據(jù)結(jié)果來推導出兩個素數(shù)的值卻極其困難,即使是超級計算機也要耗費海量的時間和資源才能算得。這便是數(shù)學中的一種難以可逆的計算方法。

橢圓曲線則算法是另外一種非對稱加密的算法。

簡單來講,它是一個方程,在平面中呈現(xiàn)為曲線狀,同樣,它也是一個數(shù)學問題,單向計算很容易,逆向計算卻極其困難,橢圓曲線算法太復雜,一時半會真心看不懂...


再說回比特幣中的公鑰和私鑰的概念,對于普通老百姓經(jīng)常被這些概念弄糊涂。再來梳理下:

基于橢圓加密的原理,由私鑰是可以計算出公鑰的,再由公鑰經(jīng)過一系列數(shù)字簽名運算就會得到比特幣錢包地址。

1,私鑰是一個隨機數(shù),32個字節(jié)隨機生成。

2,通過使用橢圓曲線加密算法,生成公鑰,共65字節(jié)。

3,公鑰進行一系列的哈希運算,生成比特幣地址,具體過程參考知乎有專門的文章解釋,就不詳述了....

所以說,在比特幣這個系統(tǒng)里,你可以公開你的收款地址、公鑰,基于哈希運算這種密碼學原理,再加上可靠性極高的橢圓加密算法,目前任何計算機都幾乎不可能通過你的地址和公鑰來破解你的私鑰,從而保證了你財產(chǎn)的安全性。

我是蘇江,長期分享區(qū)塊鏈思考,歡迎加我微信與我交流:iamsujiang

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容