現(xiàn)代密碼學(xué)技術(shù)發(fā)展已近百年,先進(jìn)、安全、可控的密碼技術(shù)是網(wǎng)絡(luò)安全的基礎(chǔ),在中國大力發(fā)展數(shù)字經(jīng)濟的今天,更是被賦予重要的歷史使命。區(qū)塊鏈技術(shù)雖然近年來才興起,但其作為“信任機器”,與密碼一樣是數(shù)字化時代的信息安全基礎(chǔ)設(shè)施,區(qū)塊鏈與密碼技術(shù)的有機結(jié)合將大大降低建立信任的成本,大大提高信息安全防護(hù)能力。
通付盾長期致力于區(qū)塊鏈與密碼技術(shù)的研究和開發(fā)工作,近年來更是積極的將區(qū)塊鏈密碼技術(shù)應(yīng)用于實際,研發(fā)的區(qū)塊鏈密碼可用于數(shù)據(jù)安全存儲、數(shù)據(jù)加密分享和數(shù)據(jù)公平交易等場景,保護(hù)數(shù)據(jù)安全。
一、數(shù)據(jù)安全存儲
問題描述
云端數(shù)據(jù)存儲是一種網(wǎng)上在線存儲模式,即把數(shù)據(jù)存放在通常由第三方托管的多臺虛擬服務(wù)器,而非專屬的服務(wù)器上。需要對數(shù)據(jù)進(jìn)行存儲托管的人,通過向托管公司提供的數(shù)據(jù)中心購買或租賃存儲空間來滿足數(shù)據(jù)存儲的需求。
然而,現(xiàn)有云存儲技術(shù)在使用過程中會存在一定的隱患,例如,用戶通過平臺上傳至云端存儲的文件中不乏用戶的機密文件或用戶私隱,這些數(shù)據(jù)的存儲多為明文存儲或簡單加密存儲,即使是加密存儲,其安全性也僅依賴于云平臺本身,一旦平臺數(shù)據(jù)被入侵、篡改,將嚴(yán)重泄露用戶的隱私;另外,云平臺上的數(shù)據(jù)無法真正的證明該數(shù)據(jù)的所有權(quán)是用戶還有平臺,即平臺本身對用戶的數(shù)據(jù)存在任意篡改的風(fēng)險,使得用戶的隱私數(shù)據(jù),例如身份信息、證件照、照片、身份證件、通訊記錄等儲存內(nèi)容的安全性受到極大威脅。
區(qū)塊鏈密碼解決方案
步驟1:DID生成
若用戶沒有DID,則需要為用戶生成DID以及DID文檔并保存到區(qū)塊鏈中。
步驟2:密鑰生成
若用戶沒有用于數(shù)據(jù)加密的公私鑰對,則需要生成公私鑰對,將公鑰保存到DID文檔中,將私鑰加密保存到本地。
步驟3:私鑰備份與恢復(fù)
利用密鑰共享技術(shù),將私鑰分成N片備份到區(qū)塊鏈節(jié)點中,恢復(fù)時只需要其中的M片即可。
步驟4:數(shù)據(jù)加密上傳
生成對稱密鑰,使用對稱密鑰對數(shù)據(jù)進(jìn)行加密,得到數(shù)據(jù)密文,使用公鑰對對稱密鑰進(jìn)行加密,得到密鑰密文,將數(shù)據(jù)密文以及密鑰密文上傳到云服務(wù)器。
步驟5:數(shù)據(jù)下載解密
從云服務(wù)器中下載選擇的數(shù)據(jù)對應(yīng)的數(shù)據(jù)密文以及密鑰密文,使用私鑰解密密鑰密文得到對稱密鑰,使用對稱密鑰解密數(shù)據(jù)密文得到選擇的數(shù)據(jù)。
技術(shù)拆解
DID生成
(1) 生成區(qū)塊鏈賬戶地址。
(2) 根據(jù)賬戶地址生成DID以及DID文檔。
(3) 將DID和DID文檔保存在區(qū)塊鏈中。
密鑰生成
(1) 根據(jù)公鑰加密算法,生成公私鑰對,用于對對稱密鑰進(jìn)行加解密。
(2) 將公鑰保存到DID文檔中,可以通過DID訪問其公鑰。
(3) 將私鑰通過口令加密保存到本地。
密鑰備份與恢復(fù)
(1) 密鑰備份
A. 根據(jù)密鑰分享技術(shù),將私鑰分成N個密鑰片。
B. 將N個密鑰片分別備份到區(qū)塊鏈節(jié)點中。
(2) 密鑰恢復(fù)
A. 從N個備份密鑰片的區(qū)塊鏈節(jié)點中選擇其中的M個節(jié)點。
B. 從這M個節(jié)點中獲取密鑰片。
C. 根據(jù)密鑰分享技術(shù),利用這M個密鑰片恢復(fù)出私鑰。
D. 利用口令對私鑰進(jìn)行加密然后將密文保存到本地。
數(shù)據(jù)加密
(1) 生成安全的隨機數(shù)作為數(shù)據(jù)加密的對稱密鑰。
(2) 根據(jù)對稱加密,使用對稱密鑰對數(shù)據(jù)進(jìn)行加密,得到數(shù)據(jù)密文。
(3) 根據(jù)公鑰加密,根據(jù)口令讀取本地私鑰,使用私鑰對對稱密鑰進(jìn)行加密,得到密鑰密文。
(4) 將數(shù)據(jù)密文以及密鑰密文上傳到云服務(wù)器進(jìn)行保存。
數(shù)據(jù)解密
(1) 從云服務(wù)器中下載選擇的數(shù)據(jù)密文以及密鑰密文。
(2) 根據(jù)口令讀取本地私鑰,根據(jù)公鑰加密算法,使用私鑰解密密鑰密文,得到對稱密鑰。
(3) 根據(jù)對稱加密算法,使用對稱加密解密數(shù)據(jù)密文,得到數(shù)據(jù)。
二、數(shù)據(jù)加密分享
問題描述
目前,數(shù)據(jù)的分享通常只是信道加密,發(fā)送方和接收方多是以明文的形式通過服務(wù)器實現(xiàn)端到端的分享。在分享過程中,數(shù)據(jù)在服務(wù)器端通常是可見的,因此存在嚴(yán)重的數(shù)據(jù)泄露的風(fēng)險。同時,數(shù)據(jù)的分享記錄由第三方服務(wù)器保存,甚至不保存分享記錄,使得分享記錄的可信性完全依賴于第三方服務(wù)器或者無從追溯。當(dāng)數(shù)據(jù)的分享記錄存儲在第三方服務(wù)器上時,如果第三方服務(wù)器受到攻擊、被篡改或偽造,服務(wù)器的不可信直接導(dǎo)致存儲的分享記錄變得不可信。數(shù)據(jù)分享缺少時間的限制條件等。
區(qū)塊鏈密碼解決方案
步驟1:數(shù)據(jù)授權(quán)
Alice生成對Bob的重加密密鑰并保存到區(qū)塊連接點,生成授權(quán)記錄并上鏈,將云服務(wù)器中的待分享數(shù)據(jù)的鏈接地址發(fā)送給Bob。
步驟2:數(shù)據(jù)訪問
Bob根據(jù)Alice分享的數(shù)據(jù)鏈接地址向云服務(wù)器請求數(shù)據(jù),云服務(wù)接收到請求后驗證授權(quán)身份后根據(jù)重加密密鑰對密鑰密文進(jìn)行重加密,得到密鑰重加密密文,將數(shù)據(jù)密文以及密鑰重加密密文返回給Bob。
步驟3:數(shù)據(jù)下載解密
Bob將數(shù)據(jù)密文以及密鑰重加密密文下載完成后,根據(jù)私鑰解密密鑰重加密密文得到對稱密鑰,根據(jù)對稱密鑰解密數(shù)據(jù)密文得到對稱密鑰。
技術(shù)拆解
發(fā)送方數(shù)據(jù)訪問授權(quán)
Alice根據(jù)自己和Bob的DID從區(qū)塊鏈中讀取DID文檔中的公鑰(Alice的公鑰pkA和Bob的公鑰pkB)。
Alice根據(jù)口令讀取本地私鑰skA,然后調(diào)用代理重加密中重加密密鑰生成算法,根據(jù)Alice的私鑰skA,Alice的公鑰pkA以及Bob的公鑰pkB生成N個重加密密鑰片nrkfrags。
Alice將N個重加密密鑰片nrkfrags保存到N個區(qū)塊鏈節(jié)點中,每一個節(jié)點只保存一個重加密密鑰片rkfrag。
Alice生成數(shù)據(jù)對Bob的授權(quán)記錄record,包括Alice的DID,數(shù)據(jù)Hash值,授權(quán)時間,授權(quán)截止時間,Bob的DID,Alice的簽名等,最后保存到區(qū)塊鏈中。
(5) Alice將云服務(wù)器中分享的數(shù)據(jù)鏈接地址url發(fā)送給Bob。
接收方請求訪問數(shù)據(jù)
Bob根據(jù)Alice分享的數(shù)據(jù)鏈接地址url,向云服務(wù)端請求分享的數(shù)據(jù)。
云服務(wù)器讀取區(qū)塊鏈中的Alice的授權(quán)記錄record,并驗證Bob的身份以及授權(quán)時間等信息。
驗證通過后,云服務(wù)器從保存了重加密密鑰片的區(qū)塊鏈節(jié)點中去讀M個重加密密鑰片mrkfrags。
云服務(wù)端根據(jù)選擇的M個重加密密鑰片mrkfrags調(diào)用代理重加密中的重加密算法,對分享的數(shù)據(jù)對應(yīng)的密鑰密文keyCipher進(jìn)行重加密,得到密鑰重加密密文keyReencryptCipher。
云服務(wù)器將分享的數(shù)據(jù)密文dataCipher以及密鑰重加密密文keyReencryptCipher返回給Bob。
接收數(shù)據(jù)并解密
(1) Bob得到云服務(wù)器返回的數(shù)據(jù)密文以及密鑰重加密密文后,根據(jù)口令讀取本地私鑰。
(2) Bob根據(jù)公鑰加密算法,使用私鑰解密密鑰重加密密文,得到對稱密鑰。
(3) Bob根據(jù)對稱加密算法,使用對稱密鑰解密數(shù)據(jù)。
三、數(shù)據(jù)公平交易
問題描述
問題1:如何證明數(shù)據(jù)是我的?
問題2:如何保障數(shù)據(jù)沒有中心化泄露風(fēng)險?
問題3:如何保障數(shù)據(jù)不被中間人劫持或竊聽(數(shù)據(jù)只正確傳輸給了我希望發(fā)送的人,并且加密數(shù)據(jù)只可以由對方解密)?
問題4:如何保障我傳輸?shù)臄?shù)據(jù)不被對方隨意復(fù)制使用?
問題5:對于數(shù)據(jù)交換和數(shù)據(jù)交易而言,如何保障我分享了數(shù)據(jù)(或付了錢)就一定能獲得我想要的數(shù)據(jù)(或錢)?
問題6:對于數(shù)據(jù)交換和數(shù)據(jù)交易而言,如何保障我分享(銷售)的數(shù)據(jù)不會被對方二次分享(銷售)?
區(qū)塊鏈密碼解決方案
步驟1:數(shù)據(jù)確權(quán)
Alice作為數(shù)據(jù)持有方創(chuàng)建DID,并將數(shù)據(jù)的信息寫入DID文檔,然后將DID上鏈,實現(xiàn)數(shù)據(jù)的確權(quán)。
步驟2:數(shù)據(jù)檢索
Bob作為用戶創(chuàng)建DID,然后查看區(qū)塊鏈中的數(shù)據(jù)信息,初步確定Alice的數(shù)據(jù)是自己需要的類型,并從區(qū)塊鏈上獲得Alice的DID以及公鑰。
步驟3:建立安全連接
Bob向Alice發(fā)送數(shù)據(jù)“試吃”請求,并建立安全連接。
步驟4:數(shù)據(jù)“試吃”與數(shù)據(jù)傳輸
Alice向Bob加密發(fā)送“試吃”數(shù)據(jù)。Bob通過“試吃”數(shù)據(jù)從數(shù)據(jù)格式和質(zhì)量等方面進(jìn)一步確定數(shù)據(jù)是自己需要的。
步驟5:公平交易
Bob向Alice發(fā)送交易請求,Alice生成安全參數(shù)并發(fā)送給Bob,Bob驗證通過后發(fā)布智能合約,智能合約驗證參數(shù)后執(zhí)行交易。
步驟6:數(shù)據(jù)使用
Bob得到數(shù)據(jù)m后,使用數(shù)據(jù)m,并在區(qū)塊鏈中保存對數(shù)據(jù)m的評價。
技術(shù)拆解
數(shù)據(jù)確權(quán)
(1) Alice生成DID_Alice,其DID文檔中包含DID_Alice的公鑰PK_Alice。
(2) Alice生成公共參數(shù)G,G是橢圓曲線循環(huán)群生成元。
(3) Alice對于數(shù)據(jù)m,計算其屬性,包括:
數(shù)據(jù)m的哈希值Hash(m),用于數(shù)據(jù)m的完整性驗證。
數(shù)據(jù)m的Pedersen Commitment M=m*G,用于驗證Bob接收到的數(shù)據(jù)m的真實性。
Alice對數(shù)據(jù)Hash(m)的簽名sig=Sign(SK_Alice,Hash(m)),用于證明Alice對數(shù)據(jù)m的所有權(quán)。
數(shù)據(jù)m的特征提取值feature=FeatureExtraction(m)及其Hash值Hash(feature),保證區(qū)塊鏈中保存的數(shù)據(jù)m的唯一性。
數(shù)據(jù)m的特征描述信息msg=Describe(m),用于用戶初步了解數(shù)據(jù)的信息,初步確定數(shù)據(jù)m是否是自己需要的。
(4) Alice更新DID_Alice,將公共參數(shù)G以及m的屬性寫入其DID文檔中。
(5) Alice將DID_Alice上傳到區(qū)塊鏈中。
數(shù)據(jù)檢索
(1) Bob生成DID_Bob,其DID文檔中包含DID_Bob的公鑰PK_Bob。
(2) Bob將DID_Bob上傳到區(qū)塊鏈中。
(3) Bob通過DID_Bob瀏覽區(qū)塊鏈上所有的DID文檔中的數(shù)據(jù)描述信息msg。
(4) Bob根據(jù)msg初步確定數(shù)據(jù)m是自己需要的。
建立安全連接
Bob生成隨機數(shù)nonce作為Alice與Bob之間的會話密鑰。
Bob從blockchain中查找didAlice并獲得其DID文檔,其中包含其公鑰PKA。
Bob使用didAlice的公鑰pkA加密didBob和nonce,得到密文cipher.。
Bob使用didBob的私鑰skBob對Hash(didBob,nonce)進(jìn)行簽名,得到簽名sig。
Bob前Alice發(fā)送cipher和sig,作為連接請求的參數(shù)。
Alice解密cipher得到didBob和nonce。
Alice根據(jù)didBob在區(qū)塊鏈上查詢其DID文檔獲得其公鑰pkB。
Alice用pkB以及didBob和nonce驗證簽名sig的有效性。若有效,則可以進(jìn)行安全連接;若無效,則放棄連接或者重新發(fā)起連接。
數(shù)據(jù)“試吃”與傳輸
(1) Alice用會話密鑰nonce加密“試吃”數(shù)據(jù)m_try,得到E(m_try)。
(2) Alice向Bob發(fā)送E(m_try)以及Hash(m_try)。
(3) Bob解密E(m_try)得到m_try,并驗證Hash(m_try),證明數(shù)據(jù)完整性。
(4) Bob試用m_try,進(jìn)一步確定數(shù)據(jù)m是自己需要的。
公平交易
Bob向Alice發(fā)送交易請求,建立安全連接。
Alice生成隨機數(shù)k和r作為對稱密鑰. 其中k用于加密m, r用于加密k。
Alice計算k, r和m的承諾K=k\*G, R=r\*G, M=m*G,并保存到區(qū)塊鏈。
Alice計算m和r的密文E(m)=m+k, z=E(k)=k+r。
Alice根據(jù)didBob從區(qū)塊鏈上獲得didBob的公鑰pkB,然后加密z得到密文E(z)。
Alice將K,R,E(m),E(z)發(fā)送給Bob。
Bob用私鑰skB解密E(z),得到z=k+r。
Bob根據(jù)didAlice從區(qū)塊鏈中獲得didAlice的公共參數(shù)G以及數(shù)據(jù)m的承諾M。
(9) Bob驗證E(m)\*G=M+K, z\*G=K+R.驗證通過后向Alice發(fā)送成功的消息。E(m)\*G=M+K驗證數(shù)據(jù)m與承諾M對應(yīng)數(shù)據(jù)是否一致以及k是否為密文E(m)的密鑰; z\*G=K+R驗證密鑰k與承諾K對應(yīng)的密鑰是否一致以及r是否為密文z的密鑰。
(10) Bob發(fā)布智能合約以及參數(shù)R。
(11) Alice收到Bob發(fā)送的驗證成功的消息后將r發(fā)布到區(qū)塊鏈中。
(12) 智能合約驗證R=r\*G,驗證成功后執(zhí)行交易,將r發(fā)送給Bob,Token發(fā)送給Alice。
(13) Bob收到r后,計算k=z-r, m=E(m)-k。
數(shù)據(jù)使用
(1) Bob使用交易的數(shù)據(jù)m。
(2) Bob反饋對數(shù)據(jù)m的評價并將其保存在區(qū)塊鏈中。
目前,區(qū)塊鏈密碼技術(shù)已成功應(yīng)用于通付盾DApp的多個實際場景中并長期穩(wěn)定運行。通付盾DApp為用戶提供安全、隱私、去中心化聯(lián)結(jié)工具。
#加密云盤 #加密分享
在通付盾DApp的“加密云盤”和“加密分享”功能中,利用區(qū)塊鏈密碼,DApp實現(xiàn)了:數(shù)據(jù)云端加密存儲,密鑰只由用戶自己保管,只有自己可以授權(quán)解密,保障用戶的數(shù)據(jù)主權(quán);實現(xiàn)數(shù)據(jù)點對點加密分享,數(shù)據(jù)分享通道安全且秘密。
#密信消息
在通付盾DApp的“密信”功能中,區(qū)塊鏈密碼適配了語音電話、視頻電話、文字、表情、聲音消息、圖片消息、文件消息等各種數(shù)據(jù)類型,保障“密信”消息的安全性和秘密性。
#數(shù)字身份
通付盾DApp中的“數(shù)字身份”是區(qū)塊鏈數(shù)字身份,在區(qū)塊鏈密碼的去中心化環(huán)境下,用戶的公私鑰體系取代傳統(tǒng)互聯(lián)網(wǎng)的賬戶體系。用戶具有完全的自主性,私鑰本地生成,從中導(dǎo)出公鑰再變換出地址,非常隱秘,自己給自己開賬戶,不需要中介。公私鑰成為了用戶可以自證的身份。
數(shù)字化技術(shù)正帶領(lǐng)我們來到了一個更廣闊的數(shù)字經(jīng)濟時代,數(shù)字空間的安全是構(gòu)建有序、穩(wěn)定數(shù)字經(jīng)濟環(huán)境的重要基礎(chǔ),而安全最重要的核心是信任與隱私,信任成本的降低和數(shù)據(jù)隱私的安全將是加速社會進(jìn)步的重大推動力,這就需要密碼技術(shù)和區(qū)塊鏈技術(shù)的發(fā)展與結(jié)合。
成立至今,通付盾人始終秉承“誠信、質(zhì)量、效率、價值”的企業(yè)文化,凝心聚力、務(wù)實篤行,堅持服務(wù)好用戶,保障數(shù)字空間安全。2021年通付盾人將以此為新起點,繼續(xù)為客戶提供更優(yōu)質(zhì)的產(chǎn)品及更高效的服務(wù),承擔(dān)起更多的社會責(zé)任,為我國數(shù)字經(jīng)濟建設(shè)貢獻(xiàn)自己的力量,讓數(shù)字生活更安全更美好!
(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請進(jìn)一步核實,并對任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對有關(guān)資料所引致的錯誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實內(nèi)容時,應(yīng)及時向本網(wǎng)站提出書面權(quán)利通知或不實情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實,溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。 )