專利名稱:基于小模數(shù)數(shù)字簽名和可信平臺(tái)模塊的銀行支票防偽方法
技術(shù)領(lǐng)域:
基于小模數(shù)數(shù)字簽名和可信平臺(tái)模塊的銀行支票防偽方法屬于密碼技術(shù)和可信計(jì)算技術(shù) 領(lǐng)域,是信息安全的核心技術(shù)之一。
(二)
背景技術(shù):
數(shù)字簽名算法是公開密鑰密碼技術(shù)的一種,可用于計(jì)算機(jī)中或互聯(lián)網(wǎng)(Internet)上數(shù)據(jù) 文件的簽名,其目的是防止發(fā)送方假冒他人身份進(jìn)行數(shù)據(jù)傳輸或?qū)鬏敂?shù)據(jù)進(jìn)行抵賴,因此, 數(shù)字簽名具有抗抵賴性和可鑒別性。
其過程是這樣的,用戶先得到數(shù)據(jù)文件或消息的Hash摘要,然后用自己的私鑰與Hash 摘要運(yùn)算,就生成了簽名碼。任何人可以對(duì)簽名碼進(jìn)行驗(yàn)證,因?yàn)樵撚脩舻墓€是公開的。 驗(yàn)證時(shí),驗(yàn)證者也是先得到同一個(gè)數(shù)據(jù)文件或消息的Hash摘要,然后,用該用戶的公鑰與 Hash摘要運(yùn)算,看結(jié)果是否滿足某一預(yù)先設(shè)定的判別式。
可信平臺(tái)模塊(Trsuted Platform Module, TPM)是一個(gè)硬件芯片,可用于計(jì)算機(jī)、手機(jī) 和個(gè)人數(shù)字助理等設(shè)備中,利用可信根和可信鏈等來加強(qiáng)設(shè)備的可信計(jì)算功能。TPM內(nèi)含計(jì) 算引擎、密碼協(xié)處理器、寄存器和存儲(chǔ)器等組件,其中,非易失性存儲(chǔ)器可貯存一定量的保 密數(shù)據(jù),以保證這些重要的數(shù)據(jù)不會(huì)被外界非授權(quán)用戶獲得。
轉(zhuǎn)帳支票或現(xiàn)金支票是銀行客戶常用的一種支付手段。但作為一次性支付介質(zhì),對(duì)它沒 有嚴(yán)格的物理或光學(xué)防偽措施。目前,對(duì)支票的防偽主要包括三種措施①特殊而又簡(jiǎn)易的 物理印制(銀行不可能花大價(jià)錢來對(duì)一次性介質(zhì)施加物理和光學(xué)防偽措施);②單位或個(gè)人簽 章;③支付密碼。實(shí)際情況告訴我們前兩者容易被假冒,商家不會(huì)輕易相信。第三者雖然
采用了密碼技術(shù),卻是對(duì)稱密碼技術(shù),且主要用于直接與銀行打交道的支票,例如現(xiàn)金支票, 因?yàn)橹挥秀y行才肯花價(jià)錢購(gòu)買一種專門的驗(yàn)證機(jī)器和軟件,即全國(guó)支票影像交換系統(tǒng)就是這
種驗(yàn)證系統(tǒng)(參見中國(guó)人民銀行,全國(guó)支票影像交換系統(tǒng)業(yè)務(wù)處理辦法,2007年)。
憑借這個(gè)系統(tǒng),提入行可以采用印鑒核驗(yàn)方式或支付密碼核驗(yàn)方式對(duì)支票影像信息進(jìn)行 付款確認(rèn)。支票影像信息通過掃描或數(shù)碼照相輸入系統(tǒng)。傳統(tǒng)的手工比較印鑒(印章)也采用 了計(jì)算機(jī)比較。
支付密碼也稱為變碼印鑒,其基本原理是出票時(shí),銀行客戶在專有的硬件或者軟件上, 輸入金額、賬號(hào)、票號(hào)、日期等信息,計(jì)算出一個(gè)數(shù)碼,填寫在票據(jù)上作為出票依據(jù)。配套 的C0M組件提供了基于256位密鑰AES的支付密碼(參見中國(guó)人民銀行,全國(guó)支票影像交 換系統(tǒng)業(yè)務(wù)處理辦法,2007年)。不過,256位的AES支付密碼是相當(dāng)長(zhǎng)的,即使采用64進(jìn) 制表示,也高達(dá)43個(gè)字符,對(duì)于手工填寫還是不方便的。因?yàn)橐话愕拇笮∩碳?包括超市、商場(chǎng)、餐館、賓館、飯店等)不愿意掏錢購(gòu)買支票影 像交換系統(tǒng),因此,當(dāng)顧客在這些場(chǎng)所購(gòu)買商品或消費(fèi)時(shí),往往要等約一個(gè)星期支票到款后 才能提貨、或者被要求付現(xiàn)金。這極大地妨礙和影響了個(gè)人或企業(yè)轉(zhuǎn)帳支票的推廣和使用。
發(fā)明內(nèi)容
如果把公鑰簽名技術(shù)用到網(wǎng)下、用于支票防偽,那么支票的安全性就能和公鑰算法的安
全性等價(jià),就能從根本上解決支票造假和可信問題。
然而,現(xiàn)在常用的數(shù)字簽名算法,例如RSA和ECC,因模數(shù)太大而沒有實(shí)用價(jià)值。 假設(shè)簽名碼用64進(jìn)制表示(即6位比特用一個(gè)字符來代替)。字符包括數(shù)字0、... 、 9, a、...、
z, A、 ...、 Z,這些字符個(gè)數(shù)為26 x2+ 10 = 62。因?yàn)樽帜竜、 O與數(shù)字0容易混淆,因此,
用+、-取代字母o、 O,另外,再添加字符*、 \,這樣,剛好湊齊64個(gè)字符。這些字符都可以
從手機(jī)上輸入。
如果采用1024比特的RSA算法(其安全性相當(dāng)于0(28())指令數(shù),運(yùn)算時(shí)間為0(236)MPS 年),則簽名碼的長(zhǎng)度為1024比特,其64進(jìn)制長(zhǎng)度為171個(gè)字符。顯然,驗(yàn)證時(shí)手工錄入171 個(gè)字符是不現(xiàn)實(shí)的。如果采用160比特的ECC算法(其安全性等價(jià)于1024比特的RSA),則 簽名碼的長(zhǎng)度為4 x 160比特,其64進(jìn)制長(zhǎng)度為108個(gè)字符。顯然,這個(gè)長(zhǎng)度對(duì)于手工錄入 來講仍然過長(zhǎng)。注意,支票作為一種一次性支付手段不可能被嵌入IC芯片來存儲(chǔ)簽名碼。
2006年,我們提交了發(fā)明申請(qǐng)"一種基于超對(duì)數(shù)難題和雙同余定理的數(shù)字簽名方法"(申 請(qǐng)?zhí)枮?00610145647.9,簡(jiǎn)稱為REESSEl+簽名方案)。這是一種完全原始創(chuàng)新的公鑰簽名方 法,與常用的RSA和ECC相比,它有一個(gè)優(yōu)勢(shì),即模數(shù)的長(zhǎng)度可以降低到與明文分組的長(zhǎng) 度w相等,而安全性可以維持在0(2")。
本發(fā)明利用小模數(shù)REESSEl+簽名方案和可信計(jì)算技術(shù)設(shè)計(jì)了一種用于銀行支票防偽的 安全方法,簽名與驗(yàn)證均快捷、方便、不需要額外成本,可以極大促進(jìn)銀行支票在個(gè)人和企 業(yè)間的流通和使用。
3.1 REESSEl+簽名的小模數(shù)化
REESSEl+是一個(gè)多變量、多難題公鑰體制,多變量排列組合難題保證了私鑰的安全性、 子集模乘積難題保證了加密的安全性、超對(duì)數(shù)難題保證了數(shù)字簽名的安全性。 所謂"小模數(shù)化"就是把模數(shù)長(zhǎng)度盡可能降低,且不影響體制的安全性。
如果REEssEi+只用于數(shù)字簽名,則密鑰生成算法中的約束M〉n;^M,i可以去掉,從而,
模數(shù)長(zhǎng)度可以降至"個(gè)比特,但而安全性仍保持在0(2"),這里,w 80或">80??梢赃M(jìn)一 步分析,參數(shù)么£>、 r的大小并不影響體制的安全性。例如,當(dāng)"=78時(shí),簽名碼為2x78 比特,其64進(jìn)制字符為26個(gè),僅比身份證多8個(gè)字符,達(dá)到了實(shí)用的長(zhǎng)度。
在支票防偽方法中,還可以選擇"=84、 90或96,此時(shí),簽名碼的第一個(gè)參數(shù)做適當(dāng)選 擇,使之滿足一定的壓縮比例,從而保證簽名碼的長(zhǎng)度不大于26個(gè)字符。3.2支票防偽的密鑰生成部分
本部分供銀行總部使用,用于生成顧客的一對(duì)私鑰和公鑰。
(1) 設(shè)置參數(shù)"=78、 84、 90或96,
(2) 讓客戶輸入企業(yè)代碼或個(gè)人身份證號(hào),
(3) 調(diào)用REESSEl+密鑰生成模塊,得到一對(duì)私鑰和公鑰,
(4) 如果是企業(yè)客戶,則把私鑰寫入一塊TPM中, 如果是個(gè)人客戶,則把私鑰寫入一個(gè)USB閃存中,
(5) 公鑰存于銀行驗(yàn)證數(shù)據(jù)庫(kù)中,與企業(yè)代碼或身份證號(hào)相對(duì)應(yīng)。
注意,存儲(chǔ)公鑰的數(shù)據(jù)庫(kù)可以存放在一臺(tái)連入互聯(lián)網(wǎng)的計(jì)算機(jī)中,以便商家能夠通過互 聯(lián)網(wǎng)來驗(yàn)證簽名碼。
3.3支票防偽的數(shù)字簽名部分
本部分供企業(yè)或個(gè)人客戶使用,是根據(jù)銀行支票的票面信息生成和輸出64進(jìn)制簽名碼(其 長(zhǎng)度小于26字符)。
(1) 輸入支票號(hào)、金額和日期等三項(xiàng),
(2) 以私鑰、支票號(hào)、金額和日期作為參數(shù),調(diào)用REESSEl+數(shù)字簽名模塊, 得到簽名碼,
(3) 如果是企業(yè)客戶,則把企業(yè)代碼、金額、日期連同簽名碼打印到支票上, 如果是個(gè)人客戶,則把身份證號(hào)、金額、日期連同簽名碼書寫到支票上。
注意,現(xiàn)在有專門的支票打印機(jī),它可以直接連到計(jì)算機(jī)上。
個(gè)人客戶一般不會(huì)購(gòu)買這種打印機(jī),因此,需把有關(guān)信息用手書寫到支票上,須工整。 有了簽名碼后,企業(yè)或個(gè)人的印章可有可無,因?yàn)楹灻a本身就是一個(gè)印章, 一個(gè)數(shù)字 印章。
為了方便個(gè)人客戶隨時(shí)隨地用支票支付,將來,數(shù)字簽名碼的產(chǎn)生可通過手機(jī)進(jìn)行。
3.4支票防偽的數(shù)據(jù)傳輸部分
本部分供商家在驗(yàn)證簽名時(shí)使用,它接收來自商家的簽名碼、并回傳來自銀行總部的驗(yàn) 證結(jié)果。
(1) 輸入企業(yè)代碼或個(gè)人身份證號(hào)、支票號(hào)、金額、日期、簽名碼等信息 到連網(wǎng)計(jì)算機(jī)或手機(jī)中、按發(fā)送鈕或發(fā)送號(hào)碼,
(2) 銀行數(shù)據(jù)收發(fā)器收到相關(guān)信息后,應(yīng)馬上把信息轉(zhuǎn)至驗(yàn)證模塊,
(3) 驗(yàn)證模塊運(yùn)算后把結(jié)果"真"或"假"返回給數(shù)據(jù)收發(fā)器,
(4) 數(shù)據(jù)收發(fā)器通過互聯(lián)網(wǎng)或無線網(wǎng)把結(jié)果傳至商家。
注意,若用手機(jī)傳送簽名碼,銀行應(yīng)該從移動(dòng)通信運(yùn)營(yíng)商處得到一個(gè)全國(guó)統(tǒng)一的號(hào)碼。3.5支票防偽的身份驗(yàn)證部分
本部分供銀行總部使用,驗(yàn)證商家發(fā)送過來的簽名碼是否有效、并輸出結(jié)果。
(1) 收存企業(yè)代碼或個(gè)人身份證號(hào)、支票號(hào)、金額、日期、簽名碼等信息,
(2) 根據(jù)企業(yè)代碼或個(gè)人身份證號(hào)從公鑰庫(kù)中找到相對(duì)應(yīng)的公鑰,
(3) 利用公鑰、支票號(hào)、金額、日期、簽名碼作為參數(shù)調(diào)用REESSEl+身份驗(yàn)證模塊, 并得至IJ"真"或"假"的結(jié)果,
(4) 把結(jié)果返回給數(shù)據(jù)收發(fā)器。
注意,"真"表示簽名碼有效,"假"表示簽名碼無效。公鑰數(shù)據(jù)庫(kù)不應(yīng)該被修改。 當(dāng)商家拿著支票到銀行儲(chǔ)蓄點(diǎn)入帳時(shí),儲(chǔ)蓄點(diǎn)可以再次以同樣的方法對(duì)支票簽名碼進(jìn)行 驗(yàn)證。
3.6優(yōu)點(diǎn)和積極效果 3.6.1安全性高
支票的安全性與所使用的公鑰簽名體制即REESSEl+具有同樣的安全性。當(dāng)明文分組為 80比特時(shí),破譯它的時(shí)間復(fù)雜度為0(2,MPS年,即每秒運(yùn)算一百萬條指令的計(jì)算機(jī)日夜不 停地工作,完成破譯的時(shí)間需要236年。
3.6.2防止銀行內(nèi)部人員作案
公鑰簽名體制不同于對(duì)稱密碼體制,它具有私鑰和公鑰兩個(gè)密鑰,私鑰由客戶私人保管 (企業(yè)客戶保留在TPM芯片中,只有授權(quán)的員工才能使用),任何外人(包括銀行工作人員) 均不知道。
而對(duì)稱密碼體制,例如AES,只有一個(gè)密鑰,客戶簽名與銀行驗(yàn)證都采用同一個(gè)密鑰(即 目前所用的支付密碼的生成與驗(yàn)證都是同一個(gè)密鑰),完全有可能引發(fā)銀行內(nèi)部人員作案問 題。從嚴(yán)格意義上來講,這不是一種簽名(簽名必須具有不可假冒、偽造的獨(dú)特性),因而, 支票必須加蓋客戶的印章。
3.6.3用私鑰產(chǎn)生的簽名相當(dāng)于私人印章
每個(gè)客戶都有自己的私鑰,與票面信息結(jié)合起來用于簽名,相當(dāng)于客戶的私人印章。因 此,有了這種不可偽造的數(shù)字簽名以后,從本質(zhì)上講,企業(yè)的印章和個(gè)人的印章都不是再需 要的。不過,考慮到一種象征意義,它們?nèi)匀豢梢岳^續(xù)存在和使用。
3.6.4可以隨時(shí)隨地驗(yàn)證且驗(yàn)證成本低
上面提到,對(duì)簽名碼的驗(yàn)證可以通過連網(wǎng)計(jì)算機(jī)或手機(jī)進(jìn)行。因此,商家只要有手機(jī)而 無需另外的設(shè)備就能進(jìn)行驗(yàn)證、且輸入的字符數(shù)量較少,不需要太多時(shí)間,使得驗(yàn)證方便、 快捷。這種驗(yàn)證方式對(duì)于推廣轉(zhuǎn)帳支票、尤其是個(gè)人轉(zhuǎn)帳支票的使用是極為有利的。3.6.5把客戶提貨的等待時(shí)間降至幾乎為零
由于目前采用的支付密碼和加蓋印章等防偽手段不能從根本上解決支票造假問題,因此, 客戶用支票購(gòu)買商品時(shí),商家要等到支票入帳、到款后才允許客戶提貨,這大概需要等待一 周的時(shí)間、且需要客戶跑兩趟。如果客戶用個(gè)人支票消費(fèi)或購(gòu)買服務(wù),商家甚至?xí)芙^客戶 的個(gè)人支票,而要求付現(xiàn)金。
而采用本發(fā)明的數(shù)字簽名碼方法后,商家當(dāng)場(chǎng)就能對(duì)支票的真假進(jìn)行驗(yàn)證,從而,客戶 可以即時(shí)支付、即時(shí)提貨或即時(shí)享受服務(wù)。
3.6.6有利于和諧社會(huì)的構(gòu)建
本發(fā)明使得對(duì)支票的驗(yàn)證能隨時(shí)隨地進(jìn)行,極大地有利于個(gè)人支票的推廣,從而減少對(duì) 現(xiàn)金的敲詐、搶劫事件,進(jìn)而,對(duì)和諧社會(huì)的構(gòu)建是一個(gè)促進(jìn)。
具體實(shí)施例方式
本發(fā)明闡述了一種基于小模數(shù)數(shù)字簽名和可信平臺(tái)模塊的銀行支票防偽方法,它結(jié)合了 密碼技術(shù)和可信計(jì)算技術(shù),包括4個(gè)部分支票防偽的密鑰生成部分、支票防偽的數(shù)字簽名 部分、支票防偽的數(shù)據(jù)傳輸部分、支票防偽的身份驗(yàn)證部分。其中,密鑰生成部分供銀行總 部使用,用來生成客戶的一對(duì)私鑰和公鑰。數(shù)字簽名部分供銀行客戶使用,用來產(chǎn)生簽名碼。 數(shù)據(jù)傳輸部分供銀行總部使用,用來接收商家發(fā)送過來的待驗(yàn)證數(shù)據(jù)和返回驗(yàn)證結(jié)果。身份 驗(yàn)證部分供銀行總部使用,用來鑒定客戶的身份和簽名碼是否有效。
這四部分可以作為子程序分別用邏輯電路芯片或程序語(yǔ)言來實(shí)現(xiàn),得到電路模塊或程序 模塊,它們可運(yùn)行于計(jì)算機(jī)系統(tǒng)中。
權(quán)利要求
1、基于小模數(shù)數(shù)字簽名和可信平臺(tái)模塊的銀行支票防偽方法,由支票防偽的密鑰生成、支票防偽的數(shù)字簽名、支票防偽的數(shù)據(jù)傳輸和支票防偽的身份驗(yàn)證等四個(gè)部分組成,其中,密鑰生成部分供銀行用來生成客戶的一對(duì)私鑰和公鑰,數(shù)字簽名部分供客戶用來產(chǎn)生簽名碼,數(shù)據(jù)傳輸部分供銀行用來接收待驗(yàn)證數(shù)據(jù)和返回驗(yàn)證結(jié)果,身份驗(yàn)證部分供銀行用來鑒定客戶的身份和簽名碼是否有效,其特征在于·支票防偽的密鑰生成部分采用了下列步驟(1)設(shè)置參數(shù)n=78、84、90或96,(2)讓客戶輸入企業(yè)代碼或個(gè)人身份證號(hào),(3)調(diào)用REESSE1+密鑰生成模塊,得到一對(duì)私鑰和公鑰,(4)如果是企業(yè)客戶,則把私鑰寫入一塊TPM中,如果是個(gè)人客戶,則把私鑰寫入一個(gè)USB閃存中,(5)公鑰存于銀行驗(yàn)證數(shù)據(jù)庫(kù)中,與企業(yè)代碼或身份證號(hào)相對(duì)應(yīng);·支票防偽的數(shù)字簽名部分采用了下列步驟(1)輸入支票號(hào)、金額和日期等三項(xiàng),(2)以私鑰、支票號(hào)、金額和日期作為參數(shù),調(diào)用REESSE1+數(shù)字簽名模塊,得到簽名碼,(3)如果是企業(yè)客戶,則把企業(yè)代碼、金額、日期連同簽名碼打印到支票上,如果是個(gè)人客戶,則把身份證號(hào)、金額、日期連同簽名碼書寫到支票上;·支票防偽的數(shù)據(jù)傳輸部分采用了下列步驟(1)輸入企業(yè)代碼或個(gè)人身份證號(hào)、支票號(hào)、金額、日期、簽名碼等信息到連網(wǎng)計(jì)算機(jī)或手機(jī)中、按發(fā)送鈕或發(fā)送號(hào)碼,(2)銀行數(shù)據(jù)收發(fā)器收到相關(guān)信息后,應(yīng)馬上把信息轉(zhuǎn)至驗(yàn)證模塊,(3)驗(yàn)證模塊運(yùn)算后把結(jié)果“真”或“假”返回給數(shù)據(jù)收發(fā)器,(4)數(shù)據(jù)收發(fā)器通過互聯(lián)網(wǎng)或無線網(wǎng)把結(jié)果傳至商家;·支票防偽的身份驗(yàn)證部分采用了下列步驟(1)收存企業(yè)代碼或個(gè)人身份證號(hào)、支票號(hào)、金額、日期、簽名碼等信息,(2)根據(jù)企業(yè)代碼或個(gè)人身份證號(hào)從公鑰庫(kù)中找到相對(duì)應(yīng)的公鑰,(3)利用公鑰、支票號(hào)、金額、日期、簽名碼作為參數(shù)調(diào)用REESSE1+身份驗(yàn)證模塊,并得到“真”或“假”的結(jié)果,(4)把結(jié)果返回給數(shù)據(jù)收發(fā)器。
全文摘要
基于小模數(shù)數(shù)字簽名和可信平臺(tái)模塊的銀行支票防偽方法,屬于密碼技術(shù)和可信計(jì)算技術(shù)領(lǐng)域;本發(fā)明使得支票的不可偽造性與公鑰數(shù)字簽名方案的安全性相對(duì)應(yīng),包括密鑰生成、數(shù)字簽名、數(shù)據(jù)傳輸和身份驗(yàn)證四個(gè)部分;其中,密鑰生成部分用來生成客戶的一對(duì)私鑰和公鑰,數(shù)字簽名部分用來產(chǎn)生簽名碼,數(shù)據(jù)傳輸部分用來接收待驗(yàn)證數(shù)據(jù)和返回驗(yàn)證結(jié)果,身份驗(yàn)證部分用來鑒定客戶的身份和簽名碼是否有效;該方法安全性高、成本低、可防止銀行內(nèi)部人員作案、可取代單位或私人印章、把客戶的提貨等待時(shí)間降至幾乎為零,可廣泛應(yīng)用于商業(yè)銀行支票業(yè)務(wù)中。
文檔編號(hào)G06Q40/00GK101290674SQ20081008890
公開日2008年10月22日 申請(qǐng)日期2008年4月3日 優(yōu)先權(quán)日2008年4月3日
發(fā)明者呂述望, 興 張, 健 李, 沈昌祥, 蘇盛輝, 蔡永泉 申請(qǐng)人:北京工業(yè)大學(xué);蘇盛輝;沈昌祥