国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于身份的在線電子現(xiàn)金系統(tǒng)設計

2017-09-18 02:29陳軼群
智能計算機與應用 2017年4期

陳軼群

摘要: 本文在了解并分析國內(nèi)外的盲簽名技術應用現(xiàn)狀和發(fā)展趨勢,特別是基于身份的部分盲簽名技術方案的基礎上設計并實現(xiàn)了基于身份的在線電子現(xiàn)金系統(tǒng)。作者設計實現(xiàn)了在電子支付流程中3個身份主體(用戶、銀行、商家)間4個主要過程:開戶注冊、提取現(xiàn)金、用戶消費、銀行支付。最后對本文工作進行了總結并展望系統(tǒng)的發(fā)展。

關鍵詞: 基于身份的密碼體制; 電子現(xiàn)金; 部分盲簽名

中圖分類號:TP309.7

文獻標志碼:A

文章編號:2095-2163(2017)04-0027-04

0引言

電子現(xiàn)金(e-cash)是數(shù)字時代的產(chǎn)物,是真實現(xiàn)金的數(shù)字化模擬,具有真實世界中現(xiàn)金的一些特性。電子現(xiàn)金一般也假設了一個權威機構,該機構負責把真實的貨幣和電子現(xiàn)金聯(lián)系起來,或者單獨發(fā)行電子現(xiàn)金。因此有些電子現(xiàn)金系統(tǒng)中權威機構每發(fā)行一筆電子現(xiàn)金給用戶,還會從用戶的賬戶中扣除一部分真實貨幣,這樣保證了電子現(xiàn)金的發(fā)行不會干擾真實世界中紙幣的發(fā)行總量。在有些電子現(xiàn)金系統(tǒng)中,權威機構是單獨發(fā)行電子現(xiàn)金的,這種電子現(xiàn)金不與真實的貨幣產(chǎn)生關聯(lián),而是作為一種獨立存在的貨幣形式,在考慮發(fā)行總量等因素時,需要核算這一部分單獨發(fā)行的電子現(xiàn)金。

本文所研究的電子現(xiàn)金系統(tǒng),設有權威機構,且可以發(fā)行單獨的電子現(xiàn)金,也可以發(fā)行與真實貨幣相關聯(lián)的電子現(xiàn)金。采用盲簽名技術使得所發(fā)行的電子現(xiàn)金與用戶的身份沒有關聯(lián),能夠保護用戶的隱私。同時通過在線數(shù)據(jù)庫的查詢保證了電子現(xiàn)金不會被重復消費。而部分盲簽名技術則幫助縮小了數(shù)據(jù)庫的規(guī)模。采用了基于身份的技術使得該系統(tǒng)的部署更為簡單,不依賴公鑰基礎設施。

1在線電子現(xiàn)金系統(tǒng)

電子現(xiàn)金系統(tǒng)存在4個過程:注冊、提現(xiàn)、消費、銀行支付。一般包含3個主體:用戶(U)、商家(M)和銀行(B),在有些電子現(xiàn)金系統(tǒng)中還存在一個可信第三方(T)。一個理想的電子現(xiàn)金系統(tǒng)應具有以下的優(yōu)點[1]:

1)[JP3]匿名性。如同現(xiàn)實世界,現(xiàn)金的使用不泄漏用戶的身份。[JP]

2)不可偽造性。用戶不能偽造電子現(xiàn)金。

3)不可重復花費性。電子現(xiàn)金只能使用一次,重復花費將以很大的概率被發(fā)現(xiàn)。

4)可分性。電子現(xiàn)金可以分成數(shù)額更小的現(xiàn)金,但總金額保持不變。

5)不可聯(lián)結性。用戶不同的電子現(xiàn)金不能被聯(lián)接起來。

電子現(xiàn)金系統(tǒng)按照其交易的載體可分為:基于賬戶的電子現(xiàn)金系統(tǒng)和基于代金券的電子現(xiàn)金系統(tǒng)。前者類似于支票、電話卡等,已經(jīng)普遍使用;后者類似于普通的現(xiàn)金,由于其匿名性、安全性等各方面的原因尚未使用。

按花費時商家是否與銀行進行聯(lián)機驗證可分為:在線的電子現(xiàn)金系統(tǒng)和離線的電子現(xiàn)金系統(tǒng)。由于在線系統(tǒng)在提取、消費、銀行支付三個階段都需要和銀行進行通信,銀行容易成為系統(tǒng)的瓶頸,降低系統(tǒng)的效率;而離線系統(tǒng)不需要銀行即時驗證,所以可能存在多重花費的問題。

2基于身份的密碼體制及部分盲簽名

2.1基于身份的密碼體制

在傳統(tǒng)的基于證書的公鑰密碼系統(tǒng)中,當用戶的數(shù)量很大時,密鑰管理和撤銷工作將會非常復雜,并且需要大量的密鑰和證書存儲空間。為了簡化PKI的密鑰管理程序,1984年,Shamir首次提出了基于身份的密碼體制思想。

基于身份的密碼系統(tǒng)總是包含有一個私鑰產(chǎn)生中心和許多用戶。私鑰產(chǎn)生中心PKG(Private Key Generator)是一個可信賴機構,負責對系統(tǒng)進行初始化,用戶向其提交身份信息,PKG再返回用戶相應的私鑰?;谏矸莸拿艽a系統(tǒng)的實質(zhì)就是選取用戶的身份信息,如電子郵件地址或郵政地址來充當用戶的公鑰,換句話說,用戶的公鑰可直接由其對應的身份信息計算出來。而只有PKG可以計算出用戶的私鑰。在這種體制下,用戶不再需要公鑰證書也不需事先驗證通信方的公鑰的有效性,從而提高了系統(tǒng)的效率及系統(tǒng)的安全性。

基于身份的密碼體制可以通過橢圓曲線上的雙線性對來設計實現(xiàn)。下面給出雙線性對的數(shù)學定義和性質(zhì):

[JP2]假定G1是橢圓曲線上一個素數(shù)q階循環(huán)加法群其成員為P,G2是一個q階循環(huán)乘法群。在集合G1和G2上的離散對數(shù)問題是難解的。一個雙線性對是一個映射e〖DD(-*1〗[WT6BX]^〖DD)〗[WT5”BX]:G1×G1→G2且滿足以下3個基本屬性:[JP]

1)雙線性:對所有P,Q,R∈G1,e〖DD(-*1〗[WT6BX]^〖DD)〗[WT5”BX](P+Q,R)=e〖DD(-*1〗[WT6BX]^〖DD)〗[WT5”BX](P,R)e〖DD(-*1〗[WT6BX]^〖DD)〗[WT5”BX](Q,R),并且e〖DD(-*1〗[WT6BX]^〖DD)〗[WT5”BX](P,Q+R)=e〖DD(-*1〗[WT6BX]^〖DD)〗[WT5”BX](P,Q)e〖DD(-*1〗[WT6BX]^〖DD)〗[WT5”BX](P,R)。

2)非退化性:存在P,Q∈G1,使得e〖DD(-*1〗[WT6BX]^〖DD)〗[WT5”BX](P,Q)≠1。

3)可計算性:對任給的P,Q∈G1,存在有效的算法計算e〖DD(-*1〗[WT6BX]^〖DD)〗[WT5”BX](P,Q)。

2.2基于身份的部分盲簽名

基于身份的部分盲簽名方案包含一個可信的密鑰分發(fā)中心(PKG)、一個簽名人和一個接收方。接收方和簽名方就簽名的部分消息達成一致,允許接收方隱瞞另外一部分消息。簽名人只知道部分內(nèi)容的消息簽名。一個具體的部分盲簽名方案包含4個算法:參數(shù)設定(Setup)、密鑰生成(KeyGen)、分發(fā)(Issue)和驗證(Verify)。其中分發(fā)算法是一個交互式協(xié)議,在簽名人和接收方之間運行,包含額外4個子算法:協(xié)商(Agree)、盲化(Blind)、簽名(Sign)和去盲(Unblind)。在此可展開論述如下。endprint

1)Setup:由PKG運行。輸入安全參數(shù)k,生成公開的參數(shù)params,包含簽名空間、消息空間、公共消息空間,另外生成秘密的PKG的主私鑰s。

2)KeyGen:輸入簽名人的身份字符串ID,PKG使用其私鑰s,公開參數(shù)params,計算簽名人的簽名密鑰SID。

3)Issue:假設接收方所希望簽署的消息是m,在執(zhí)行以下的4步后,會生成關于m的一個簽名δ。如果沒有輸入公共消息,在執(zhí)行以下的4步后也會生成一個公共消息c。這里,將給出步驟內(nèi)容依次分述如下。

① Agree:如果沒有輸入公共消息,接收方和簽名人交互生成公共消息c。

② Blind:該算法輸入隨機字符串r、消息m、公共消息c,輸出字符串h,發(fā)送給簽名人。

③ Sign:該算法輸入簽名人的私鑰sk、字符串h、輸出簽名δ〖DD(-*2〗-〖DD)〗,發(fā)送給接收方。

④ UnBlind:該算法輸入簽名和Blind步驟中的隨機字符串r,輸出去盲的簽名δ。

4) Verify:該算法輸入去盲的簽名δ、消息m、公共消息c、簽名人的身份字符串ID, 輸出“真”或者“假”,表示簽名是或者不是一個有效的簽名,這種有效性是指是否是簽名人用私鑰SID對消息m和公共消息c生成的簽名。

[JP2]一個安全的部分盲簽名方案需要具有2個基本的安全屬性,一個是不可偽造性,一個是部分盲性。其中,不可偽造性是一種在適應性選擇消息和身份的條件下存在性的不可偽造。[JP]

直觀來看,部分盲簽名的不可偽造性保證了攻擊者在不能生成簽名人私鑰的情況下,將無法生成有效的該簽名人簽署的部分盲簽名。

而關于部分盲性的描述如下。在典型的盲簽名中,簽名人完全不知道簽署的消息。如果簽名人能夠把簽署的某個數(shù)字簽名和某次具體的簽署過程聯(lián)系在一起,盲簽名的盲性就失效了。對比來看,部分盲簽名中,簽名人和接收人需要預先確認一個公共消息。如果簽名人在公共消息中嵌入一個獨特的可識別的信息,那么簽名人就很容易地把簽名和某次簽名的過程聯(lián)系起來,因此也就沒有了盲性。為了使部分盲簽名有意義,公共消息空間的大小應該遠小于全部的簽名請求的數(shù)量。部分盲簽名的這種弱點是天生的,是為在消息中嵌入公共消息所付出的代價。

直觀來看,部分盲簽名的盲性就是讓簽名人不能知道自己所簽署的數(shù)字簽名和哪一個去盲化之后的消息對應。這里可以明確地看到,公共信息對所有部分盲簽名形成了一種簡單的劃分,在每一個子劃分內(nèi),簽名人是完全盲的。

3基于身份的在線電子現(xiàn)金系統(tǒng)

本系統(tǒng)包含4個基本過程和4個參與方,如圖1所示。

4個參與方包括可信任的密鑰分發(fā)中心(PKG)、銀行(Bank)、商家(Shop)和用戶(User)。其中PKG和銀行間有一個交互過程(KeyGen),該過程結束后銀行可獲得以其域名為身份的私鑰。在研發(fā)時,PKG可以是銀行所有(國內(nèi)主要商業(yè)銀行自己建立PKG),也可以單獨實現(xiàn)。用戶和銀行間有2個基本過程,分別是:開戶注冊(Reg.)和電子現(xiàn)金提?。╓ithdrawal)。開戶注冊過程確認通過后,用戶將獲得一個電子現(xiàn)金賬號,銀行則記錄該賬號和用戶的身份。電子現(xiàn)金提取過程全部展開執(zhí)行后,用戶即獲得銀行使用其私鑰簽署的電子現(xiàn)金。用戶、商家和銀行將協(xié)同參與一個基本過程,也就是支付(Pay)過程。支付過程完成后,商家獲得現(xiàn)金,銀行向商家支付,記錄已經(jīng)消費的電子現(xiàn)金。下面即按照不同的參與方來探討各參與方的功能和參與方之間的基本交互過程。

3.1密鑰分發(fā)中心模塊設計

密鑰分發(fā)中心(PKG)可重點實現(xiàn)整個系統(tǒng)的參數(shù)生成,為自己生成公鑰和私鑰,對每一個請求私鑰的實體進行驗證,并生成私鑰。典型地,PKG包括2個主要模塊。一個是參數(shù)設定模塊,生成自己的公私鑰;一個是密鑰生成模塊,為用戶的身份字符串生成私鑰。一個設計完善的PKG還應該包括注冊模塊、執(zhí)行策略模塊等。本文僅針對主要模塊,提出詳盡應用探討解析如下。

3.1.1參數(shù)設定模塊

本系統(tǒng)采用了PBC庫的A類型參數(shù)。其中q是大素數(shù),滿足模4余3。E是橢圓曲線y2=x3+ax,其中a可以取值為-3。那么E(Fq)是一個超奇異橢圓曲線,橢圓曲線上離散點的數(shù)目為q+1,且對應定義在Fq2上的橢圓曲線的點的數(shù)目為(q+1)2。進一步,對任意整除q+1的奇數(shù)r,橢圓曲線E(Fq)上的離散點構成一個r階的循環(huán)群,嵌入指數(shù)是2。

在本系統(tǒng)開發(fā)過程中,研究使用了PBC庫自帶的A類型參數(shù)(q、h、r),這些參數(shù)確定了橢圓曲線上的群G+,G2和對運算e〖DD(-*1〗[WT6BX]^〖DD)〗[WT5”BX](·,·)以及階q(r)。其它的參數(shù)還包括G+的生成元P和雜湊函數(shù)H(·)、H0(·)。其中,生成元通過隨機選擇G+中的點來設定。而雜湊函數(shù)通過使用SHA-256來實現(xiàn),對于映射到橢圓曲線上的雜湊函數(shù),在SHA-256之后使用了PBC庫的element_from_hash函數(shù)來提供設計支持。PKG的私鑰s通過從Zr中隨機選擇得到,而公鑰Ppub使用element_pow_zn計算求出。PKG的公鑰和私鑰分開存儲在2個獨立的文件中。

3.1.2密鑰生成模塊

該模塊要求用戶輸入自己的ID字符串,回車后為用戶生成對應于該ID的私鑰。在此基礎上,更為完善的模式構建可設計描述為:首先檢查用戶的ID,確認用戶的身份,之后將ID與日期等信息綁定,形成一個在一定期限內(nèi)有效的ID,以便能夠處理用戶吊銷身份的事件。本系統(tǒng)僅實現(xiàn)了核心的功能,并采取了簡單的DOS界面方式,具體即如圖2所示。

該模塊的內(nèi)部執(zhí)行方式與第2節(jié)研究設計的部分盲簽名的KeyGen算法相同,首先把用戶輸入的ID字符串進行SHA-256的雜湊,之后使用PBC庫的element_from_hash函數(shù)把用戶的ID字符串映射為橢圓曲線上的一個點,最后使用element_pow_zn輸入PKG的私鑰s計算用戶的私鑰sID。該私鑰存儲在單獨的文件中,面對面、或者通過安全信道交給用戶。endprint

3.2銀行功能模塊設計

銀行一方面與PKG交互獲得私鑰,一方面與用戶交互,為用戶配置了注冊、電子現(xiàn)金提取,并有效參與了支付過程。其中,銀行與PKG的交互過程按照PKG的密鑰生成模塊來執(zhí)行。其它3個功能分別敘述如下。

3.2.1開戶注冊

研究假設用戶已經(jīng)在其智能手機上安裝了銀行的APP,并且與銀行能夠建立安全連接,銀行能夠通過賬戶、密碼、USB KEY等方式確認用戶的合法身份。用戶打開銀行APP并啟用身份認證,打開電子現(xiàn)金注冊功能,該軟件生成該用戶的私鑰和公鑰。也就是通過使用了PKG生成的系統(tǒng)參數(shù)來為用戶生成公私鑰,其過程與PKG建立自己的主密鑰對的過程類似。需要注意的是,當前的執(zhí)行主體是用戶,生成的私鑰由用戶保存,而公鑰則由APP反饋給銀行,銀行存儲公鑰信息、并和用戶的身份綁定。對于設計完善的應用程序,在此步驟則應額外返回銀行一個知識證明,證明用戶確實擁有對應的私鑰。

3.2.2電子現(xiàn)金提取

通常,電子現(xiàn)金提取包括用戶證明自己擁有某個賬號的認證流程和提取電子現(xiàn)金的內(nèi)容,這里把這2個部分整合在一起,并給出直觀設計展現(xiàn)如圖3所示,即使銀行和用戶協(xié)同執(zhí)行如下“認證的電子現(xiàn)金提取協(xié)議”:

1)首先,用戶的APP向銀行發(fā)起請求,要求提取電子現(xiàn)金;該消息包含用戶的賬戶信息或者其摘要的信息。

2)銀行核實賬戶I確實是自己的用戶,就按照Chow等人的部分盲簽名方案[2],計算Issue算法中Sign-1的子步驟,獲得C、Y。這2個數(shù)據(jù)發(fā)送給用戶的APP,兼有單向認證協(xié)議的挑戰(zhàn)消息的功能。

3)用戶的APP按照Chow等人的部分盲簽名[2],計算Issue算法中Blind的子步驟,獲得h,然后使用ISO標準化版本中的“使用公鑰的2次傳輸單方認證協(xié)議”,構造簽名,共同返回給銀行。

4)銀行使用用戶的賬戶信息I,驗證用戶的簽名,驗證通過后按照Chow等人的Issue算法[2]中Sign-2子步驟計算S,并返回給用戶。

5)用戶的APP按照Chow等人的Issue算法[2]中UnBlind子步驟去盲化,獲得電子現(xiàn)金,并使用銀行的ID驗證電子現(xiàn)金的有效性。

上述認證的電子現(xiàn)金提取協(xié)議內(nèi)嵌了一個ISO標準化版本中的“使用公鑰的2次傳輸單方認證協(xié)議”,可以讓銀行切實掌控處理對用戶的認證;而電子現(xiàn)金本身提供了用戶對銀行的認證,因此本質(zhì)上實現(xiàn)了用戶和銀行之間的雙向認證,并同時完成了電子現(xiàn)金的提取。

3.2.3支付過程

銀行設計參與的支付過程是發(fā)生在銀行與商家之間的。對于在線電子現(xiàn)金系統(tǒng),這意味著商家每收到用戶的“一張”電子現(xiàn)金,都需要交給銀行驗證真?zhèn)危⒂摄y行返回驗證的結果。本系統(tǒng)使用的是基本的Web-Service方式,即銀行提供電子現(xiàn)金驗證的Web方法。通過分析可知在.NET3.5框架下,使用Visual Studio 2008已經(jīng)可以調(diào)動Windows Communication Foundation (WCF)功能了,該功能具備了WS-Security機制,可以保護商家和銀行之間的通信的安全。

在Web-Service方式下,銀行僅僅完成驗證功能。輸入的參數(shù)包括消息、共享消息、簽名字符串,返回電子現(xiàn)金是否有效的結果。為了在C#中使用PBC庫,需要封裝簽名驗證的功能到一個動態(tài)鏈接庫(DLL),然后在C#中導入該DLL,引用簽名驗證的函數(shù),獲得驗證結果。如果驗證通過,銀行搜索SQL數(shù)據(jù)庫,如果數(shù)據(jù)庫中沒有存儲該電子現(xiàn)金,說明電子現(xiàn)金有效,則向商家賬戶存入電子現(xiàn)金,返回給商家電子現(xiàn)金有效的信息,并存儲該電子現(xiàn)金到數(shù)據(jù)庫中;否則,將給商家返回無效的信息。

3.3商家功能模塊設計

商家與用戶交互,也與銀行交互。研究假設商家擁有一個電子商務網(wǎng)站,這樣,用戶可以在該網(wǎng)站選擇自己的商品,購物選擇結束后,即使用電子現(xiàn)金支付。當然,商家也可以是一個實體的商店,但是需要擁有能夠讀取用戶存儲設備中電子現(xiàn)金的能力,例如通過近場通信技術(NFC),一個讀卡器可以讀取用戶手機中存儲的內(nèi)容。對于本文的在線電子現(xiàn)金系統(tǒng),設計中重點關注了商家的支付功能。假設用戶通過商家的網(wǎng)站來進行支付,用戶通過點擊一個支付按鈕完成支付。簡單起見,研究中僅考慮了定額10美元支付的功能,也就是每次支付都是從用戶“錢包”中讀取“一張”電子現(xiàn)金。

3.4用戶功能模塊設計

用戶與銀行交互,也與商家交互。本文的電子現(xiàn)金系統(tǒng)中用戶與銀行的交互是通過用戶的APP研發(fā)實現(xiàn)的,主要的功能包括開戶和電子現(xiàn)金提取,與商家的交互主要是通過商家的網(wǎng)站設計得到的。但是智能完備的程序設計中,用戶還要配備一個功能來管理自己的電子錢包,對存取行為進行授權,例如通過Windows的文件驅(qū)動來提供設計支持。上述的注冊功能與銀行交互,為用戶生成一對公私鑰,其中公鑰是用戶的電子現(xiàn)金賬號,提交給銀行。而電子現(xiàn)金提取功能,允許用戶設置共享的消息,并完成與銀行的“認證的電子現(xiàn)金提取協(xié)議”。

4結束語

本文研究綜述了一個基于身份的電子現(xiàn)金系統(tǒng)的實現(xiàn)過程。該系統(tǒng)綜合了客戶與銀行在提現(xiàn)階段的認證和部分盲簽名算法,給出了認證的電子現(xiàn)金提取協(xié)議,提高了效率;另外該系統(tǒng)采用了PBC庫的“A”參數(shù),保證了提現(xiàn)、消費等階段的運算速度,提升了效率;最后,該系統(tǒng)采用URL地址做網(wǎng)上銀行的身份,減輕了釣魚網(wǎng)站的危害。

當然本系統(tǒng)還需要進一步的完善,包括:

1)支持離線的電子現(xiàn)金。為了支持離線的電子現(xiàn)金,需要修改電子現(xiàn)金系統(tǒng)的基本算法,在當前核心算法的基礎上,進一步增加基于受限盲簽名的實現(xiàn)代碼,最終封裝為可離線消費的電子現(xiàn)金系統(tǒng)。

2)支持客戶端的錢包管理。一個完整的電子簽名作為“一張”電子現(xiàn)金,以數(shù)據(jù)的方式存儲在某個存儲設備中,那么對該存儲設備必須提供相應的訪問控制的功能,也就是“錢包”管理。endprint

3)完善當前的各項設定功能。在本文的整體論述中,對每一個功能,都已明確指出了一個完善系統(tǒng)研究拓展的具體細節(jié)。本文設計實現(xiàn)的是一個較為簡單的概念系統(tǒng),因此后續(xù)研究應將相關的功能在進行有效改進升級后,才能夠真正地投入現(xiàn)實使用。

參考文獻:

[WTBZ][ST6BZ][HT6SS][1] [ZK(#〗

陳曉峰. 電子商務安全性的理論與技術研究[D]. 西安:西安電子科技大學, 2003.

[2] CHOW S S M , HUI L C K, YIU S M, et al. Two improved partially blind signature schemes from bilinear pairings[C]//ACISP 2005. Berlin: Springer, 2005,3574: 316-328.

[3] CHAUM D. Blind signature for untraceable payments[M]// CHAUM D, RIVEST R L, SHERMAN A T. Advances in cryptologyEurocrypt. US: Springer, 1983: 199-203.

[4] ABE M, FUJISAKI E. How to date blind signatures[M]//KIM K, MATSUMOTO T. Advances in CryptologyAsiacrypt 1996. Berlin: Springer,1996, 1163: 244-251.

[5] 許靜,馮偉成,周蓮英,等. 基于部分盲簽名的新型電子現(xiàn)金安全系統(tǒng)研究[J]. 計算機工程,2006,32(19):157-158,175.

[6] 金鑫,疏國會. ActiveX控件應用安全研究[J]. 數(shù)字技術與應用,2011(8):241-243.

[7] ZHANG F, SAFAVI-NAINI R, SUSILO W. An efficient signature scheme from bilinear pairings and it's applications[M]// BAO F, DENG R, ZHOU J.Public key cryptographyPKC 2004. PKC 2004. Lecture Notes in Computer Science. Berlin: Springer,2004,2947:277-290.endprint