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