【密碼學(xué)】
1、對(duì)稱加密 ? ? ? ? ??
2、非對(duì)稱加密
3、DES ? ? ? ? ? ? ? ?
4、分組密碼
5、公鑰密碼學(xué)
6、Hash
7、MD5
8、RSA ? ? 密碼體制
9、橢圓曲線簽名算法
10、SHA256
11、數(shù)字簽名
12、零知識(shí)證明
13、PKI體系
我們談?wù)劰€密碼學(xué)。
這關(guān)系到兩件事情:
?1.如何秘密地發(fā)送信息給某人?
2.如何驗(yàn)證這信息的發(fā)送者是誰?
算法:
哈希算法
對(duì)稱加密
非對(duì)稱加密=公鑰密碼學(xué)=》橢圓曲線算法
基本數(shù)學(xué)原理
? ? ? ?比特幣的數(shù)學(xué)原理,主要涉及到兩個(gè)方面,一是數(shù)字簽名及不對(duì)稱加密技術(shù),二是數(shù)字指紋技術(shù)
1,數(shù)字簽名機(jī)制
數(shù)字簽名是現(xiàn)代計(jì)算機(jī)密碼學(xué)的一個(gè)重要概念,比特幣的數(shù)字簽名是基于不對(duì)稱加密算法來完成的,具體示例如下:假如小明想向小紅發(fā)送一條信息,但是這條信息可能被小張監(jiān)聽到,于是他倆想到一個(gè)好辦法,就是通過一套商量好的加密規(guī)則,將信息加密,這樣即使小張監(jiān)聽到內(nèi)容,由于他不知道加密規(guī)則,還是破譯不了這條信息內(nèi)容,這叫對(duì)稱加密。

【對(duì)稱加密場(chǎng)景】
? ? ? ?但是對(duì)稱加密有個(gè)明顯缺點(diǎn)是,小明需要把加密規(guī)則告知小紅,小張要是能截取到加密規(guī)則,那以后小明和小紅的信息交流就可以被破解,并且小張也可以假冒小明向小紅發(fā)送假冒信息,因此我們需要另一套通訊規(guī)則來避免這種情況。
? ? ? ?非對(duì)稱加密可以有效解決上述問題。首先,小明需要一對(duì)公鑰和私鑰,公鑰和私鑰是成對(duì)存在的,公鑰由私鑰通過一個(gè)不可逆的數(shù)學(xué)公式生成,公鑰和私鑰遵循以下規(guī)則:
1,用公鑰加密的信息,可以用私鑰解密,但反過來不可以;
2,用私鑰簽名的信息,可以用公鑰驗(yàn)證,即驗(yàn)證簽名;
? ? ? ?有了上述規(guī)則我們就可以設(shè)計(jì)如下的信息交互場(chǎng)景:

? ? ? 使用私鑰簽名、公鑰驗(yàn)證場(chǎng)景
? ? ? ?我們從上圖可以看出,在這種情況下,整個(gè)系統(tǒng)沒有人可以假冒小明發(fā)信息,因?yàn)橹挥行∶髦雷约旱拿罔€,這種設(shè)計(jì)可以有效保證發(fā)信人的不被惡意偽冒。
? ? ? ? 當(dāng)然,這套機(jī)制也可以進(jìn)行加密的信息傳輸:

公鑰加密、私鑰解密示例
比特幣使用的是橢圓曲線數(shù)字簽名算法(SECP256K1),該算法可以很大程度保證該交易過程不被破解,我們?cè)谄綍r(shí)使用時(shí)完全不必?fù)?dān)心。比特幣錢包地址的生成也是基于該算法,首先由隨機(jī)字符串產(chǎn)生一個(gè)秘鑰,再通過秘鑰使用算法產(chǎn)生公鑰,該公鑰經(jīng)過一定變換生成比特幣錢包地址,也就是說,我們只要知道隨機(jī)種子或者秘鑰,就可以推算出錢包的地址,但該過程不可逆,因此保護(hù)好自己的秘鑰非常重要。
