【導讀】隨著移動終端技術的涌現,手機支付技術越來越時髦,手機支付也成為了財務支付的服務方式之一。雖然手機支付是新興產業(yè),但是電子收據已經趨于成熟,移動支付產業(yè)前景大好。與紙質收據相比,電子收據具備明顯優(yōu)勢。
電子收據
本項目所實現的技術是面向移動支付服務中的一個必要環(huán)節(jié):電子收據憑證。電子收據的核心部分是數字簽名技術。使用數字簽名技術需要三方的參與:可信第三方(仲裁)、商家以及消費者。所有使用電子收據服務的商家事先公布必要的簽名信息(公鑰)。消費者消費之后從商家獲得電子收據,并從可靠的第三方獲得商家的公鑰,從而驗證該收據的有效性。由于電子簽名的不可偽造性,消費者之后能夠利用可信第三方的信息和自己手機存儲器上的收據信息來證明消費的單據,從而維護自己的權益。
基于彩虹算法的數字簽名技術
1、數字簽名介紹
數字簽名是一中認證機制,它使得消息的產生著可以添加一個起簽名作用的碼字。通過計算消息的散列值并用產生者的私鑰加密散列值來生成簽名。簽名保證了消息的來源和完整性。
數字簽名可以用于雙向認證和單向認證。雙向認證使得通信的雙方對相互的身份感到放心,并交換會話密鑰。而單向認證的時候,接收方能夠確保消息的確來源于發(fā)送方,而且發(fā)送方無法抵賴層放松的消息。
數字簽名包含幾個特征:簽名能夠驗證簽名者、簽名日期和時間;簽名能夠驗證被簽的消息內容;簽名能夠由第三方仲裁,以解決爭執(zhí)。
一個能夠應用的數字簽名算法需要滿足以下幾個最基本的條件:產生和識別簽名是容易的;偽造簽名是不可能的;保存簽名備份是可行的。
2、數字簽名安全性與不可抵賴性
在本項目中,使用數字簽名的作用是使電子收據的接受方(消費者)能夠確認收據來源的權威性,而且使商家不能夠抵賴已進行的交易,以電子票據的方式保護消費者的權益。
由于數字簽名的不可偽造性,當發(fā)現爭執(zhí)的時候,消費者能夠用保存在終端(手機)之中的消費數據中的簽名,證明消費過程和權益。數字簽名和普通的紙質票據具有同樣的法律效力,且數字簽名具有易攜性和非易失性的特點,必會在將來得到大規(guī)模的應用。
3、簽名的過程
在本項目簽名的過程中涉及到商家(發(fā)送方),消費者(接收方),可能還涉及到第三方仲裁者。我們假設商家已經將其公鑰公布出去。當消費者進行消費的時候,已經其公鑰了。那么,當需要產生一個簽名票據的時候,商家將票據信息(時間日期商品數量價格廠家名字等等)做一個HASH,得到一個固定字長的序列,假設為M,然后用其私鑰對該M進行加密,即得到S=Eprivate(H(M))。然后將其發(fā)送給接收方。接收方就可以保存M||S作為電子票據。
那么如何驗證發(fā)送方的簽名呢?消費者只需要計算S1=Epublic(S),然后計算S2 =H(M),再判斷S1與S2是否相等即可。相等則簽名的驗證通過,否則不通過。
4、彩虹算法
彩虹算法是一種多變量公鑰密鑰體制的簽名算法。多變量密碼體制(MPKC)被認為是能夠抵御基于量子計算機攻擊的新型公鑰密碼體制之一。其基本理論依據是基于求解有限域上的一組隨機選擇的非線性方程組的困難性。這是一個NP難問題,即使是使用量子計算機也不會減少破解其的困難性。彩虹算法被認為是MPKC體系發(fā)展至今,一個公認的安全可靠的簽名算法。彩虹算法是基于油醋算法的變形,其可以理解為多層的非平衡油醋。而油醋多項式的特征是:油變量僅以線性形式出現的二次多項式。當簽名者隨機選取醋變量的值后,通過求解多元一次方程組即可得出簽名信息。而驗證者只需做簡單的算術運算即可驗證簽名是否正確。簽名和驗證的過程都效率都十分高。同時,在彩虹體系中,公鑰是油醋變量混合在一起的非線性方程,具有很高的安全性。
系統(tǒng)整體架構與工作流程
1、軟件架構
商家PC端手機發(fā)送商品以及交易信息到FPGA開發(fā)板,開發(fā)板上實現彩虹簽名算法,開發(fā)板對商品信息做了簽名之后,通過藍牙將電子收據發(fā)送到手機Android端。Android手機在藍牙端接收到電子收據后,從第三方獲取公鑰,并在本地驗證電子收據簽名的有效性。有效則交易完成,否則可重新要求商家簽發(fā)電子收據。
2、硬件架構
PC端通過藍牙與FPGA板塊通信,實現交易信息的發(fā)送。FPGA板通過藍牙與手機android端通信,實現簽名完成后的電子收據的發(fā)送。
3、系統(tǒng)工作數據流
首先商家向權威第三方注冊,公布自己的公鑰。在交易之后,商家首先將交易信息(時間、商品、數量和價格等等信息)以及自己的私鑰發(fā)送到FPGA板上,FPGA板對交易信息做簽名,連同商品信息一道,作為電子收據,通過藍牙通信發(fā)送到移動android終端。移動終端從第三方獲取公鑰信息,并在手機本地做簽名的驗證。驗證通過則保存該電子收據作為交易憑證,交易過程結束。
而當發(fā)生糾紛消費者需要維權的時候,由于可信的第三方保存著商家的公鑰,而擁有公鑰的實體都可以進行電子收據簽名的認證。是商家不能抵賴電子收據所表示的進行過的電子交易。
具體實現
1、藍牙通信的實現
本項目的藍牙是使用HC-05嵌入式藍牙串口通訊模塊實現的。fpga開發(fā)板通過控制藍牙串口通信模塊,使用AT指令與手機android端進行數據交換。手機android端在與fpga板成功對接之后,利用藍牙通信技術與fpga板子通信。從fpga板子上獲取經過電子簽名之后的電子收據。
2、密鑰芯片的實現
本項目的核心模塊是密鑰模塊。即使為電子收據做簽名的硬件模塊。使用verilogHDL語言實現,并生成為一個IP核。使用開發(fā)板上的microblaze核來實現所有的邏輯業(yè)務,將實現彩虹簽名算法的ip核作為一個被調用的模塊添加進來。
相關閱讀:
智能家居市場ZigBee/WiFi/藍牙三足鼎立,誰能稱霸?
實用電路匯總:藍牙耳機及其放大電路的設計
“藍牙技術聯盟”的全面揭秘