之前所有的加密方法都是對稱加密,說的直白一點就是加密和解密都是同樣的密碼。
比如你用銀行賬號對應的密碼可以取出現金,別人拿著這張卡你給他說了密碼也能取出現金;比如你的email登錄密碼,比如微信、支付寶登錄密碼等等,這些都是對稱密碼的應用。
只要是同一把鑰匙在開一個鎖,都是對稱密碼。
可是對稱密碼有一個問題是很難解決的,就是秘鑰的傳輸。
之前講的量子通訊也是鑰匙傳輸的目前已知的最先進安全的鑰匙分發方式,但是一般情況下,普通用戶是很難使用的。想象下面一個場景,你媳婦兒給你電話,說他在網上購物,需要你的信用卡密碼,你給她說了,他就購物,如果這個時候,有人也在監聽你的電話,他也在購物就等這個密碼呢,他也去刷卡,這時候怎么辦?
問題都在秘鑰的傳輸方面。
環節越多,出錯越容易,能不能砍掉這個秘鑰傳輸的環節?
可以。用公鑰加密,也就是用一對兒鑰匙。
兩把鑰匙?用把鑰匙開一個鎖,這個鎖不就是爛鎖了嗎?并非如此。
現在有兩把秘鑰:公鑰和私鑰。
公鑰,就是公共的鑰匙,這把鑰匙誰都可以知道;私鑰是本地的,私人的鑰匙,只有自己知道,私鑰就不發送不傳輸了,因為不傳輸也就沒有了傳輸的問題。
比如說,你要發一封email文件給你家人,這個是非常機密的東西,你家人在網上生成了鑰匙對兒,也就是公鑰和私鑰,然后把公鑰給你發過來,私鑰自己記錄好,不要放在網上。
你收到公鑰后,用公鑰對自己要發出的信息加密,然后發給家人,家人收到后,拿著私鑰進行解密,就看到了你的重要信息了。
這里面有幾個點,公鑰,也是家人發給你的,如果被別人截獲了怎么辦?
沒關系,公鑰即使很多人知道沒關系的,因為公鑰只能加密,而解密的是公鑰對應的私鑰,也就是說別人知道你的公鑰,只是方便他們給你發信息。他們加完密,自己都解不開。
這就是非對稱加密的工作原理,因為出現了公鑰,這個之前歷史上沒有的東西,所以,非對稱加密也被稱為公鑰加密。
生成私鑰公鑰的方法,網上一搜就有了,不必在此贅述。
總結下公鑰加密的特點:
1,公鑰和私鑰必須成對出現,不能分別單獨生成,
2,公鑰任何人都可以知道,私鑰只有接收信息的人知道;
3,A發給B信息的過程是:A拿著B的公鑰對一段要發出的信息加密,B收到后,拿著自己也就是B的私鑰進行解密。
公鑰加密有什么用?
比特幣的加密方式就是公鑰加密。所以你才有什么私鑰公鑰和地址,公鑰可以推出地址,地址推不出公鑰,即使推出來也沒關系,因為本來公鑰就是公共的鑰匙,誰想知道都可以。本質上所謂生成比特幣的賬戶,就是生成一個秘鑰對兒,有了公鑰和私鑰,然后公鑰再推出個地址,一個比特幣的賬戶就生成了。這個生成賬戶的方法,比傳統金融里去銀行開戶,方便和安全很多,當然,傳統銀行也很安全,中心化會對你的賬戶保護,比特幣是人類歷史上第一次用技術解決了安全問題。
我們很快會專門去講比特幣的加密原理,今天就簡單說一下。
RSA是什么?為什么好多人都會講到RSA?
RSA是非對稱加密法里面用的最廣泛的一種加密方法,當然,還有別的,比如比特幣里還有一個神奇的橢圓曲線加密,就是一種非對稱加密法,但不是RSA。曾經,這個橢圓曲線加密的方法選擇,受到以太坊發起人vitalik的稱贊,他說中本聰可能是蒙的,選的這么好。
RSA加密因為創始人名字的首字母分別是R、S和A所以叫RSA加密,他們發文章的時候用Alice和Bob兩人的名字代表A和B,所以密碼學里面就形成通用管理,“Alice發一個比特幣(或一段信息)給Bob”,這樣的句式開始出現。竊聽者總被被叫做Eve。
好了,看了上面的內容,其實今天已經明白了非對稱加密的主要知識,下面的內容比較困難,各位讀者可以選擇性閱讀。
RSA大概是什么方法?為什么總有專家提到什么“大數的質因數分解”?“大數的質因數分解”和RSA非對稱加密有什么關系?
加密過程就是明文的E次方然后mod N。mod代表的是乘法求余數的運算符號。
E和N的組合就是公鑰,D和N的組合就是私鑰。E取自單詞encryption加密,D取自單詞Decryption解密,N取自單詞number數字。
N=p * q,p和q是質數,很大的質數,所以難以破解,如果是很簡單的質數比如2和3,那就太簡單了,當然真正運算的時候都是二進制,動輒512bit的質數相乘,這也就是為什么破解私鑰很難的原因之一,因為人類暫時沒有發現對大整數進行質因數分解的高效方法,所以,RSA比較安全。現在的銀行系統的安全也是RSA加密的,N要求大于300位,如果要分解這樣一個數,需要的時間單位數量級是億年,億萬年的時光去破解一個密碼,假設科技按照現在的水平沒有突破的話。
為什么加上mod N這樣的東西?因為沒有這個就是個對數問題,很容易求解,如果有了mod N求明文就成了求離散對數的問題,同樣的,人類目前沒有找到求離散對數的高效方法。
鑒于之前的文章出現了很多數學公式,今天關于RSA的講解控制在500字內,這是一個引子,如果你對RSA感興趣,可以私信溝通也可以去網上搜索更多的資料,但是,對于區塊鏈從業或者是數字貨幣投資者來說,只需要理解本文的重點部分即可。畢竟,看到離散對數的時候,很多讀者已經看不下去了。沒關系的,掌握關鍵,吸收精華即可。
明白非對稱加密(公鑰加密)對理解比特幣的公鑰私鑰以及錢包和工作原理非常重要,所以今天講解下非對稱加密技術。
試問如果我發出去的是錢,而不是一封信,公鑰加密給你,你用私鑰打開后可以用,是不是就是比特幣?或者反過來問,我發給你一個賬本信息,你能打開這個賬本信息,于是這個賬本信息最后一條寫著,我給你轉了10個比特幣,是不是這條信息就成了你有10個比特幣的證明,也就是說這個賬本信息本身就證明了你有比特幣了?信息就變成了錢,順著這個思路去思考去理解比特幣吧。后面會仔細講的。
這個世界的大門慢慢在打開,感謝能從隱藏法、移位替換法、維吉尼亞加密法、恩尼格瑪機一直同行到現在,比特幣和區塊鏈的核心很快就要觸碰到了。
來源: 加密二鍋頭
評論
查看更多