?

基于“區塊鏈-加密卡”的加密系統設計

2023-06-21 19:20易凡劉燕莉
現代信息科技 2023年9期
關鍵詞:智能合約區塊鏈

易凡 劉燕莉

摘? 要:為了解決信息加密中硬件加密效率較低、軟件加密安全性不足的問題,設計了一種基于區塊鏈和高速密碼卡的軟硬件結合加密系統。系統在數據加密前增加了信息準備步驟。通過去中心化的區塊鏈對待加密信息進行處理,將計算機的硬件特征引入簽名驗簽,不通過第三方CA機構即可達到可信的目的。加密系統避免了密碼資源暴露在網絡中,提高了效率,改善了用戶體驗,增強了點對點通信的安全強度。

關鍵詞:區塊鏈;智能合約;加密卡;摘要值

中圖分類號:TP309.7;TP183 文獻標識碼:A 文章編號:2096-4706(2023)09-0181-04

Abstract: In order to solve the problems of low efficiency of hardware encryption and insufficient security of software encryption in information encryption, a combined software and hardware encryption system based on blockchain and high-speed cryptographic card is designed. The system adds a new information preparation step before data encryption. By processing the information to be encrypted through a decentralized blockchain, the hardware characteristics of the computer are introduced into the signature and verification, the purpose of trustworthiness can be achieved without going through a third-party CA institution. The encryption system avoids the leakage of cryptographic resources in the network, increases efficiency, improves user experience, and enhances the security strength of peer-to-peer communication.

Keywords: blockchain; smart contract; cryptographic card; digest value

0? 引? 言

數據加密是計算機系統對信息進行保護的一種可靠辦法。它利用密碼技術對待發送信息進行編碼,實現信息隱蔽,從而起到保護信息安全的作用??梢哉f,加密技術是網絡信息安全的基石。從加密技術的發展來看,大致可以分為軟件加密和硬件加密兩種形式。

軟件加密的定義比較寬泛,一般來講,經過加密軟件授權與某一種或某幾種特定信息進行綁定,再進行加密的方法都稱為軟件加密。這里的特定信息通常包括三類,一是用戶信息如用戶名、用戶編號,二是計算機硬件特征如CPU序列號、MAC地址、硬盤序列號、BIOS信息,三是互聯網上的授權服務器綁定,是云計算模式的授權方案。其中,采用綁定計算機硬件特征的加密方式,不使用額外的硬件設備,易于管理和維護,且加密軟件可以電子化發行,有助于提高效率。但軟件加密的密碼資源存儲于主機內,不法分子能通過技術手段獲取密碼資源,甚至篡改、偽造密碼資源,造成了一定的安全隱患。

相比于軟件加密,硬件加密的安全強度可以得到保證,它借助硬件設備來實現。在加密過程中,加密密鑰、加密算法、自定義文件、敏感數據等都存儲加密卡中。硬件加密所采用的加密卡一般都與計算機PCIE主板插槽完全匹配,可直接插入槽中工作。加密卡與計算機之間的數據通過PCIE總線進行傳輸,所有的加解密過程都在加密卡中進行。由于卡中的密碼資源相對獨立,沒有相應的授權無法導出,極大地增加了加密的可靠性。但與此同時,硬件加密一次性永久授權的方式,無法方便實現用戶的按需購買和二次更新。另外,信息發送者采用加密卡單獨進行加密時,必須委托CA頒發證書,之后向全網公布公鑰,獲取公鑰后對信息進行加密。這個過程不僅需要選擇可信的第三方CA機構,而且整個證書認證體系的過程也影響了客戶體驗,造成了效率的降低。

為了解決上述兩種加密方式分別存在的問題,本文設計了一種基于“區塊鏈-加密卡”的軟硬件結合信息加密系統(以下簡稱加密系統)。

1? 加密系統設計

加密系統由區塊鏈模塊、加密卡硬件模塊和管理軟件模塊三部分組成。

1.1? 區塊鏈模塊

區塊鏈模塊包括區塊鏈底層平臺、智能合約及區塊鏈上層應用:區塊鏈底層平臺由傳輸網絡中的計算機組成,在此基礎上,向上部署了智能合約上層應用系統。由于區塊鏈反轉了應用層和協議層之間的分布模式,區塊鏈應用層為滿足用戶需求,需要調用協議層及智能合約層的接口,來豐富整個區塊鏈生態。

加密系統在傳輸網絡中部署區塊鏈模塊的流程包括了智能合約的部署、傳輸網絡中計算機賬號的注冊、摘要值的獲取。

1.1.1? 部署智能合約

智能合約作為目前區塊鏈的核心技術之一,是一種旨在以信息化方式傳播、驗證或執行合同的計算機協議。智能合約最大的優勢在于可以不通過第三方進行可信交易,自動促進、驗證或執行可信的交易,這些交易可追蹤且不可逆轉。本系統借助智能合約完成數據的加密,部署智能合約需要五個步驟:

1)啟動并配置一個以太坊節點,首先安裝go語言,目的是編譯go-ethereum源碼;之后安裝安裝git用以拉取go-ethereum 源碼;獲取go-ethereum后,切換到指定的release branch;添加geth到系統路徑并啟動geth重要參數。當出現如下類似結果時表明配置成功,如圖1所示。

2)編寫智能合約。合約部署交易的數據部分是初始化期間將要執行的代碼。這部分代碼會做下面兩件事:運行構造器部分的代碼,設置存儲值等。復制剩下的代碼到內存區并返回。

3)智能合約經以太坊虛擬機的編譯,成為計算機可運行的字節碼,同時會產生二進制接口規范(ABI)。ABI是合約接口的JSON表示,包括了變量、事件和可以調用的方法;另外編譯能夠處理編譯時拋出的錯誤,確保不會在包含錯誤的源代碼上進行編譯。

4)合約發起用戶將編譯好的字節碼文件通過發起交易的形式廣播到區塊鏈網絡中。

5)礦工確認后將智能合約存入區塊鏈,同時使用節點的默認地址為合約簽名,并得到智能合約所在地址及調用合約所需接口。

1.1.2? 注冊賬戶

傳輸網絡中的計算機通過區塊鏈上層應用,注冊賬戶,獲得區塊鏈上唯一的賬戶ID。

1.1.3? 獲取摘要

各計算機通過智能合約,將公鑰數據及計算機硬件特性信息摘要上鏈存為塊消息;每個上鏈的計算機通過塊消息的哈希值,查找獲取塊消息中的公鑰及硬件特性信息摘要數據。

1.2? PCIE加密卡硬件模塊

PCIE加密卡采用PCIE插槽,內部集成了一款64位的RISC嵌入式處理器,有專用的軟件集成開發環境和擴展指令,支持SM1、SM2、SM3、SM4等國密算法以及DES、3DES、AES、RSA等多種國標算法,適用于數字簽名與身份認證。

加密卡基于StratixIII系統FPGA-DE3開發板實現,DE3開發板包含豐富的器件資源及外設結構,有充足的開關、LED流水燈、按鍵,能夠滿足各種數據傳輸與加密的需求,內部的高速擴展接口可以實現與其他開發板的連接,提升了數據傳輸效率。DE3開發板不僅器件資源豐富,外設接口也相當成熟,在設計時只需對FPGA芯片內部控制系統進行二次開發,減少了工作量。

考慮到加密卡在開發階段與應用階段你的不同需求,設計了兩種電源供電:一是穩壓電源供電,通過穩壓電源直接輸出三路所需電壓到DE3開發板上。這種方案效率較高,輸出電流大,但同時功耗較高,噪聲大,使用前需要調節相應參數,可以用于開發板的設計驗證階段。二是電源芯片供電,選用LT1764系列電源芯片將輸入的5 V直流電壓轉換成各個模塊所需要的不同電壓,這種方案輸出電流、噪聲、功耗都較小,設計完成后無須人工干預,適合用于開發板的實際工作階段。

本系統通過Nios II嵌入式處理開發包中的組件SOPC Builder完成SOPC子系統的定制,實現軟核系統的基本配置與生成;使用Verilog硬件描述語言對自定義控制模塊進行描述并借助Altera集成開發環境Quartus II下載到主控芯片FPGA中。在硬件設計完成之后使用集成開發環境Nios II進行軟件的開發與調試,實現對硬件邏輯的控制。在進行數據傳輸時,開發板通過內部FPGA芯片Nios II CPU接收與下發上位機命令,并在數據傳輸完成后將測試結果上傳,完成系統上位機與下位機間的數據交互。

1.3? 管理軟件模塊

管理軟件模塊提供雜湊算法API接口、公鑰加密API接口、簽名生成API接口、簽名驗證API接口,可以為用戶提供從公鑰加密到簽名、驗簽的一整套算法接口,無須借助其他設備與模塊,方便隨時調用。以簽名生成與簽名驗證為例,管理軟件模塊工作流程如下:

1)將所有業務請求參數按優先級進行排序。

2)將參數名稱和參數值鏈接成一個字符串。

3)在字符串的首尾加上簽名API接口密鑰組成一個新字符串。

4)對新字符串進行散列運算得到API簽名,對簽名進行編碼,完成簽名的生成。

5)對這兩個簽名進行校驗,比對生成的API簽名是否一致,得出簽名的有效性。如果有效,則繼續執行業務流程,否則拒絕請求。

當布置完成區塊鏈網絡后,加密系統即可開展工作,其工作流程可以分為:信息準備階段、信息加密階段、信息解密階段。

2? 信息準備階段

計算機通過加密卡管理軟件模塊調用公私鑰對生成函數接口API,生成一組公私鑰對作為后續公鑰加密的密鑰。其中,公鑰傳入計算機內存中,私鑰只存儲在加密卡中。

計算機調用加密卡雜湊算法API接口,將計算機的硬件特征信息加密生成計算機硬件特征信息摘要,存放于加密卡并上傳至計算機中。硬件特征信息摘要存放于加密卡的地址固定,內容無法更改,包括CPU序列號、BIOS序列號、網卡MAC地址和硬盤序列號。

計算機將加密卡提供的公鑰及自身硬件特征信息摘要通過智能合約規定上傳至區塊鏈中,得到每個區塊地址哈希值。通過區塊鏈上層應用,計算機可以根據區塊地址的摘要值獲取其他計算機公鑰及硬件特征信息摘要。信息準備階段流程如圖2所示。

3? 信息加密階段

以兩臺通用計算機為例,描述信息加密階段流程:

1)在信息加密數據準備完畢后,調用非對稱加密算法API接口,計算機Ⅰ以計算機Ⅱ的公鑰Ⅱ作為加密密鑰,以明文信息作為待加密數據,通過加密卡處理得到加密消息Ⅰ。

2)計算機Ⅰ從加密卡固定地址內讀取自身的計算機硬件特征信息摘要Ⅰ,和加密消息Ⅰ拼接后,通過雜湊算法生成待驗簽消息Ⅰ。

3)計算機Ⅰ調用簽名算法API接口,以待驗簽消息Ⅰ作為待加密數據,以密碼卡內的私鑰Ⅰ作為加密密鑰,通過加密卡處理得到簽名消息Ⅰ。

4)將加密消息Ⅰ和簽名消息Ⅰ打包發送給計算機Ⅱ完成加密流程。

信息加密階段流程如圖3所示。

4? 信息解密階段

以兩臺通用計算機為例,描述信息解密階段流程:

1)在信息加密完畢后,計算機Ⅱ從區塊鏈中獲取計算機Ⅰ的公鑰及硬件特征信息Ⅰ的摘要,調用驗簽算法API接口,以簽名消息Ⅰ作為待驗簽數據,以計算機Ⅰ的公鑰Ⅰ作為解密密鑰,在加密卡中解密簽名消息Ⅰ得到驗簽消息Ⅰ。

2)調用雜湊算法API接口,計算機Ⅱ將計算機Ⅰ的硬件特征信息摘要Ⅰ與加密消息Ⅰ拼接后通過雜湊算法處理得到驗簽消息Ⅱ。

3)在計算機Ⅱ的密碼卡內,對比驗簽消息Ⅰ和驗簽消息Ⅱ是否一致,如果一致則判定計算機Ⅰ身份信息無誤且數據未被更改。

4)計算機Ⅱ調用非對稱解密算法API接口,以加密消息Ⅰ作為待解密數據,以計算機Ⅱ密碼卡內的私鑰Ⅱ作為解密密鑰解密得到明文;如果不一致則判定計算機Ⅰ身份信息無效或信息被篡改。

信息解密階段流程如圖4所示。

5? 結? 論

傳統區塊鏈體系中的加密算法大多沒有用于鏈上的數據的加密存儲,即任何人都能獲取鏈上數據,僅僅能實現了交易雙方身份的隱私。加密卡加密的方式雖然可以避免上述問題,卻因為第三方CA的介入,增加了加解密的流程。

本文設計的基于“區塊鏈-加密卡”信息加密系統,將區塊鏈、加密卡硬件、管理軟件進行融合,在依靠硬件設備的參與保證了信息安全的同時摒棄了CA,減少了加密流程,大大提高了加解密及簽名驗簽效率,具有重要的價值。經過對AES算法密鑰生成、加密解密運算進行測試。在密鑰長度采用256位,數據分組長度為128位的ECB模式下,相較于傳統密碼機加密,其加密效率提高了大約27%。

參考文獻:

[1] 彭陽,孟李林,李年,等.基于FPGA的高速加密卡設計與實現 [J].電子科技,2013,26(6):42-45.

[2] 劉烊,侯方勇,陳雪.基于嵌入式系統硬件加密的技術研究 [J].黑龍江科技信息,2012(36):105+11.

[3] 王繼業,高靈超,董愛強,等.基于區塊鏈的數據安全共享網絡體系研究 [J].計算機研究與發展,2017,54(4):742-749.

[4] HUANG B T,LIU Z G,CHEN J H,et al. Behavior pattern clustering in blockchain networks [J].Multimedia Tools and Applications,2017,76:20099–20110.

[5] 胡凱,白曉敏,高靈超,等.智能合約的形式化驗證方法 [J].信息安全研究,2016,2(12):1080-1089.

[6] 李明.基于PCI-E高性能密碼卡的關鍵技術的研究 [D].西安:西安電子科技大學,2018.

[7] 唐樂爽,竇同銳,桑洪波,等.基于I/O前后端模型的密碼卡軟件虛擬化 [J].計算機系統應用,2022,31(1):286-294.

[8] 李萍,朱春琴,曹磊,等.基于高性能密碼實現的大數據安全研究 [J].無線互聯科技,2021,18(1):104-107.

作者簡介:易凡(1990—),男,漢族,河南信陽人,工程師,碩士,研究方向:信息安全;劉燕莉(1988—),女,漢族,河南新鄉人,助教,碩士,研究方向:通信與信息系統。

猜你喜歡
智能合約區塊鏈
農產品供應鏈金融信用體系框架設計
基于區塊鏈技術的去中心化數字出版平臺研究
區塊鏈技術在互聯網保險行業的應用探討
智能合約的特點及其在債券市場的應用
保險企業的區塊鏈技術應用方向選擇研究
區塊鏈技術在金融領域的應用與前景研究
區塊鏈技術的應用價值分析
“區塊鏈”的茍且、詩和遠方
基于區塊鏈技術的數字貨幣與傳統貨幣辨析
區塊鏈技術在會計中的應用展望
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合