課程介紹
本課程涵蓋區(qū)塊鏈開發(fā)全部的必備密碼學(xué)技術(shù),包括密碼理論、對稱加密、分組密碼、非對稱加密、單向散列、消息認(rèn)證、數(shù)字簽名、證書、SSL 等部分。掌握常見的密碼學(xué)接口和程序設(shè)計(jì)。
區(qū)塊鏈技術(shù)是21世紀(jì)的重大創(chuàng)新技術(shù),它是數(shù)字化資產(chǎn)的分布式賬本,是構(gòu)建價(jià)值互聯(lián)網(wǎng)的基石,是驅(qū)動(dòng)分享經(jīng)濟(jì)發(fā)展的新引擎。Go語言是區(qū)塊鏈主流編程語言,簡單易學(xué)、開發(fā)速度快且并發(fā)性好。 《Go語言與區(qū)塊鏈》就業(yè)課程涵蓋 go高級編程,go web開發(fā),區(qū)塊鏈密碼學(xué),以太坊,分布式微服務(wù),hyperledger等技術(shù)要點(diǎn),旨在打造基礎(chǔ)扎實(shí)、知識面廣、綜合能力強(qiáng)的區(qū)塊鏈應(yīng)用層及底層技術(shù)引領(lǐng)者。

2019年Go語言與區(qū)塊鏈課程
鏈接: https://pan.baidu.com/s/1rtstZKws3t9L8bcFZmUd3Q 提取碼: gx1r
2019年Go語言與區(qū)塊鏈課程
鏈接: https://pan.baidu.com/s/1rtstZKws3t9L8bcFZmUd3Q 提取碼: gx1r
2019年Go語言與區(qū)塊鏈課程
鏈接: https://pan.baidu.com/s/1rtstZKws3t9L8bcFZmUd3Q 提取碼: gx1r
一 、概念
主要介紹非對稱加密的一些概念。
公鑰、私鑰:均可加密或解密。私鑰用來解密和簽名,給自己用的。公鑰由本人公開,用于加密和驗(yàn)證簽名,給他人用的。
驗(yàn)簽:用公鑰解密簽名得到摘要,然后用原始文件經(jīng)過hash得到摘要,與解密出的摘要進(jìn)行對比。
簽名:內(nèi)容->hash->digest->私鑰加密->簽名
證書:數(shù)字證書則是由證書認(rèn)證機(jī)構(gòu)(CA)對證書申請者真實(shí)身份驗(yàn)證之后,用CA的根證書對申請人的一些基本信息以及申請人的公鑰進(jìn)行簽名(相當(dāng)于加蓋發(fā)證書機(jī)構(gòu)的公章,即CA的私鑰加密生成)后形成的一個(gè)數(shù)字文件。
二、舉例說明
假設(shè)X給Y寫一份信,那么這封將包含如下三部分內(nèi)容:
1、信本身的內(nèi)容
2、X的數(shù)字簽名
3、X的數(shù)字證書
然后Y收到這封信,Y會(huì)想這封確定是X發(fā)過來的嗎?這封信在發(fā)送過程中有被篡改,還是完整的嗎?只有當(dāng)Y確認(rèn)清楚,才能判斷出信的內(nèi)容是否可靠。
然后Y先用ZX提供的公鑰解開數(shù)字證書,根據(jù)得到:如X個(gè)人信息,確定是X發(fā)過來的;得到X的公鑰等。
接著,用X的公鑰解開X的數(shù)字簽名就能得到,信本身內(nèi)容的摘要。然后將信的本身內(nèi)容經(jīng)hash計(jì)算得到又一個(gè)摘要,將兩個(gè)摘要比較,如果相同說明信的內(nèi)容沒有被篡改。
BCCSP(Blockchain crypto provider)即區(qū)塊鏈加密提供商,用于定義選擇使用的密碼學(xué)實(shí)現(xiàn)庫。負(fù)責(zé)摘要生成,非對稱密鑰的簽名與驗(yàn)證,根據(jù)證書查找私鑰等。該模塊提供了一系列的接口,這些接口定義了摘要的生成方法,簽名,驗(yàn)證,加密,解密等。所有自定義的密碼學(xué)實(shí)現(xiàn)庫都需要實(shí)現(xiàn)這些接口,以此達(dá)到密碼學(xué)算法的可插拔。
目前fabric BCCSP模塊的接口有三種實(shí)現(xiàn)類,如下圖所示:
其中SW(software based)實(shí)現(xiàn)方式是直接調(diào)用golang提供的庫文件來進(jìn)行加解密,哈希,簽名驗(yàn)簽等。
PKCS11是調(diào)用ecdsa來進(jìn)行加密,解密,哈希,簽名驗(yàn)簽等,而ecdsa是通過調(diào)用動(dòng)態(tài)運(yùn)行庫來進(jìn)行以上功能的完成。
GM國密算法實(shí)現(xiàn)方式與PKCS11一致。中間層提供SM2進(jìn)行簽名與驗(yàn)簽,SM3進(jìn)行哈希,SM4實(shí)現(xiàn)加密。