亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于組合公鑰的密碼學(xué)貨幣地址在線生成方法與流程

文檔序號:12133504閱讀:316來源:國知局
基于組合公鑰的密碼學(xué)貨幣地址在線生成方法與流程

本發(fā)明涉及密碼學(xué)貨幣領(lǐng)域,尤其涉及一種基于組合公鑰的密碼學(xué)貨幣地址在線生成方法。



背景技術(shù):

比特幣等基于區(qū)塊鏈技術(shù)的密碼學(xué)貨幣的用戶客戶端被稱為錢包(Wallet),錢包作為客戶端既可以是應(yīng)用程序,也可以是硬件。用戶通過錢包建立并管理自己的賬戶,并通過錢包在密碼學(xué)貨幣網(wǎng)絡(luò)中進(jìn)行交易。交易主要包括將自己賬戶的余額轉(zhuǎn)賬給其他用戶,或接收來自于其他用戶的付款。

用戶在交易之前需要首先通過錢包生成基于公鑰密碼的個(gè)人賬戶。比特幣及比特幣的衍生密碼學(xué)貨幣普遍采用橢圓曲線密碼作為構(gòu)建賬戶的公鑰密碼算法。用戶通過錢包生成橢圓曲線公私鑰對,其中私鑰被保存在錢包的私鑰存儲區(qū)中,公鑰的哈希值作為用戶的公開賬號公布給付款方,在密碼學(xué)貨幣中將用戶公鑰的哈希值稱為地址(Address),即用戶用于收款的賬戶地址。用戶僅在向其他用戶付款的時(shí)候才需要訪問自己的私鑰,用于為交易生成數(shù)字簽名。用戶在收款的時(shí)候不需要使用自己的私鑰,僅需要向付款方提供自己的地址即可。

由于密碼學(xué)貨幣中地址由用戶個(gè)人生成,因此不同于傳統(tǒng)銀行系統(tǒng)中每個(gè)用戶通常僅有少量賬戶,密碼學(xué)貨幣中用戶可以生成任意數(shù)量的地址(以及對應(yīng)的私鑰)。出于保護(hù)用戶隱私的目的,密碼學(xué)貨幣在實(shí)踐中也鼓勵(lì)用戶為每一次收款生成一個(gè)新的地址,避免攻擊者從公開的區(qū)塊鏈數(shù)據(jù)中將多筆交易關(guān)聯(lián)至一個(gè)同一個(gè)用戶,以及分析同一個(gè)地址的多次交易情況及總的賬戶余額。

在一些典型場景中用戶需要頻繁地接收來自其他用戶的付款。例如,通過密碼學(xué)貨幣接受付款的網(wǎng)店商戶,在每一單交易中都需要接收來自用戶的付款。如果為了保護(hù)其自身隱私,商戶需要為每一單交易生成一個(gè)不同的地址,保存并管理這些地址及對應(yīng)的私鑰,那么當(dāng)交易非常頻繁、交易數(shù)量非常多時(shí),由于地址和私鑰的數(shù)量與交易的數(shù)量成線性關(guān)系,對私鑰和地址的管理就給錢包系統(tǒng)帶來巨大的存儲和管理開銷。

通常地,錢包每當(dāng)生成新的地址時(shí),都需要將對應(yīng)的私鑰保存至私鑰存儲區(qū),而訪問私鑰存儲區(qū)的過程會給私鑰帶來巨大的安全風(fēng)險(xiǎn)。為了避免頻繁訪問私鑰存儲區(qū),目前的錢包通常采用批量批量地生成地址的策略,即一次性生成多個(gè)地址及對應(yīng)的私鑰,并一次性地將這批私鑰保存在私鑰存儲區(qū),從而降低對私鑰存儲區(qū)的訪問頻率。例如比特幣錢包在默認(rèn)配置下每次生成100個(gè)私鑰及對應(yīng)的地址,用戶可以選擇將私鑰保存在離線的存儲器上,如閃存盤、專用硬件設(shè)備,或者打印在紙張上,離線保存。而批量生成的地址在錢包客戶端中在線保存。當(dāng)這批地址使用完畢后,錢包再次批量生成私鑰和地址并訪問離線存儲用于保存私鑰。這種策略雖然一定程度上降低了私鑰存儲區(qū)的訪問頻率,但是仍然要定期地訪問私鑰存儲區(qū),私鑰存儲區(qū)的訪問數(shù)量和存儲開銷仍然和交易量成線性關(guān)系,并沒有降低地址和私鑰的存儲開銷和管理開銷。



技術(shù)實(shí)現(xiàn)要素:

為了克服上述現(xiàn)有技術(shù)的不足,本發(fā)明提供一種基于組合公鑰的密碼學(xué)貨幣地址在線生成方法,無需訪問私鑰,而使用公鑰矩陣快速生成新的公鑰,從而生成收款地址。

本發(fā)明的原理是:基于區(qū)塊鏈技術(shù)的密碼學(xué)貨幣的用戶客戶端被稱為錢包(Wallet),錢包作為客戶端既可以是應(yīng)用程序,也可以是硬件。用戶通過錢包建立并管理自己的賬戶,并通過錢包在密碼學(xué)貨幣網(wǎng)絡(luò)中進(jìn)行交易。本發(fā)明具體實(shí)施中以比特幣為例,針對基于區(qū)塊鏈技術(shù)的密碼學(xué)貨幣,提供基于組合公鑰的地址在線生成方法,具體針對用戶客戶端(錢包),在錢包初始化的過程中,錢包會生成一個(gè)私鑰和一個(gè)固定大小的公鑰矩陣,利用組合公鑰的特性,在不妨問私鑰的情況下,使用公鑰矩陣可以快速生成新的公鑰,從而生成收款地址,在此過程中無需訪問私鑰。由于錢包需要生成收款的地址,本發(fā)明方法用于基于區(qū)塊鏈技術(shù)的密碼學(xué)貨幣(如比特幣)的錢包中,能夠在線快速地生成密碼學(xué)貨幣地址,降低錢包對私鑰和地址管理的開銷。

本發(fā)明提供的技術(shù)方案是:

一種基于組合公鑰的密碼學(xué)貨幣地址在線生成方法,包括系統(tǒng)初始化過程、地址生成過程和支付簽名過程;在系統(tǒng)初始化過程中,錢包生成了一個(gè)私鑰和一個(gè)固定大小的公鑰矩陣,所述私鑰保存在私鑰存儲區(qū)中,所述公鑰矩陣保存在錢包的在線存儲區(qū)中;在地址生成過程中,每當(dāng)錢包接收付款時(shí),錢包通過唯一交易編號從所述公鑰矩陣中導(dǎo)出對應(yīng)的唯一地址,在這個(gè)過程中無需訪問私鑰存儲;在支付簽名過程中,錢包通過所述唯一交易編號生成對應(yīng)的私鑰,通過該私鑰生成簽名以完成支付。

針對上述密碼學(xué)貨幣地址的在線生成方法,進(jìn)一步地,通過所述系統(tǒng)初始化過程準(zhǔn)備后續(xù)交易中用到的相關(guān)參數(shù),并完成相關(guān)參數(shù)的存儲;所述參數(shù)包括密碼哈希算法族、密碼哈希函數(shù)、主密鑰和公鑰矩陣;所述系統(tǒng)初始化過程首先選擇密碼哈希算法族和密碼哈希函數(shù)HT,然后隨機(jī)生成主密鑰s存儲在私鑰存儲區(qū),最后生成公鑰矩陣并在線存儲。

針對上述密碼學(xué)貨幣地址的在線生成方法,更進(jìn)一步地,所述系統(tǒng)初始化過程具體包括如下步驟:

11)選擇一個(gè)整數(shù)作為參數(shù)k的取值;

12)選擇密碼哈希算法族包含k2個(gè)密碼哈希算法,所述k2個(gè)密碼哈希算法的定義域和值域相同,均為由素?cái)?shù)p定義的有限域Fp,具體為式1:

13)選擇密碼哈希函數(shù)HT,所述密碼哈希函數(shù)HT的輸入為任意長度的比特串,輸出為由k個(gè)整數(shù)構(gòu)成的向量,向量中的每個(gè)元素值的范圍為[1,k],表示為式2:

HT∶{0,1}*→{a1,a2,…,ak},ai∈[1,k] (式2)

14)隨機(jī)生成橢圓曲線密碼的私鑰s,作為用戶的主密鑰;s∈[1,p-1];

15)生成k×k的公鑰矩陣表示為式3:

矩陣中的元素為主密鑰經(jīng)過哈希函數(shù)Hi,j映射后的結(jié)果和橢圓曲線點(diǎn)群生成元進(jìn)行標(biāo)量乘法的結(jié)果;

16)將s作為用戶的主密鑰存儲在私鑰存儲區(qū),公鑰矩陣由錢包在線存儲。

針對上述密碼學(xué)貨幣地址的在線生成方法,進(jìn)一步地,所述地址生成過程為完全在線進(jìn)行,無需訪問私鑰存儲區(qū),具體包括如下步驟:

21)將當(dāng)前的交易賦予一個(gè)唯一交易編號t,t的值是任意的比特串;

22)通過哈希函數(shù)HT()將所述唯一交易編號t映射為向量,表示為式4:

{a1,a2,…,ak}←HT(t),ai∈[1,k],1≤i≤k (式4)

23)將向量的值作索引,從所述公鑰矩陣的每一行選擇一個(gè)元素,選出橢圓曲線點(diǎn)作為橢圓曲線密碼中的公鑰,并通過橢圓曲線上點(diǎn)的加法操作對所述橢圓曲線密碼中的公鑰求和,得到一個(gè)新的橢圓曲線點(diǎn)Qt,表示為式5:

橢圓曲線點(diǎn)Qt為公鑰矩陣中公鑰的線性組合,是一個(gè)合法的橢圓曲線密碼,是組合公鑰的結(jié)果;

24)通過哈希函數(shù)HA()將獲得的新公鑰Qt映射為地址At,表示為式6:

At←HT(Qt) (式6)

25)將新生成的地址At返回給用戶作為收款地址。

針對上述密碼學(xué)貨幣地址的在線生成方法,進(jìn)一步地,所述支付簽名過程用地址關(guān)聯(lián)的私鑰生成數(shù)字簽名,具體包括如下步驟:

31)設(shè)定用戶獲得收款的交易編號為t;

32)訪問私鑰存儲區(qū)讀取主密鑰s;

33)通過哈希函數(shù)Ht將交易編號t映射為向量,表示為式7:

{a1,a2,…,ak}←HT(t),ai∈[1,k],1≤i≤k (式7)

34)通過式8生成私鑰dt

35)用私鑰dt完成對付款交易信息做數(shù)字簽名,完成付款。

本發(fā)明方法中,密碼學(xué)貨幣可以選用比特幣、萊特幣或以太坊等任意密碼學(xué)貨幣。現(xiàn)有比特幣、萊特幣以及以太坊使用的地址生成方式都是類似的,實(shí)際上,今后還會出現(xiàn)基于這種地址生成方式的新的密碼學(xué)貨幣。本發(fā)明方法同樣適用于這類新的密碼貨幣。

本發(fā)明方法在錢包初始化過程中,生成了一個(gè)私鑰和一個(gè)固定大小的公鑰矩陣,其中私鑰保存在私鑰存儲區(qū)中,公鑰矩陣保存在錢包的在線存儲區(qū)中,每當(dāng)錢包接收付款時(shí),錢包可以通過交易的唯一交易編號從公鑰矩陣中導(dǎo)出對應(yīng)的唯一地址,在這個(gè)過程中無需訪問私鑰存儲。

與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:

本發(fā)明提供一種基于組合公鑰的密碼學(xué)貨幣地址在線生成方法,無需訪問私鑰,而使用公鑰矩陣快速生成新的公鑰,從而生成收款地址。使用本發(fā)明技術(shù)方案的密碼學(xué)貨幣錢包具有以下特征:

(一)可以為用戶生成任意數(shù)量的地址,可以增強(qiáng)大量接收密碼學(xué)貨幣付款的用戶的隱私。

(二)用戶私鑰離線存儲只需要一個(gè)私鑰的空間,因此用戶可以容易地利用現(xiàn)有的私鑰離線存儲方案,如紙錢包(即將私鑰以二維碼的形式打印到紙上),或者將私鑰存儲在硬件USB Key上。密碼學(xué)貨幣的私鑰通常是一個(gè)標(biāo)準(zhǔn)的橢圓曲線密碼私鑰,因此,可以將本方案的主密鑰s存儲在任何支持橢圓曲線密碼私鑰存儲的密碼設(shè)備中。

(三)用戶在接收付款的過程中不需要訪問私鑰存儲區(qū)。這意味著本方案的主密鑰完全可以離線存儲。

(四)用戶的公鑰因子矩陣的存儲空間為固定的常量,這個(gè)存儲量不隨生成地址數(shù)量的增長而增長。

(五)用戶可以更容易地管理地址。用戶的地址可以由某個(gè)和支付相關(guān)的信息生成,因此地址是不需要存儲的。

因此,利用本發(fā)明方法,可以非常快地生成交易地址,且無需直接訪問私鑰,大大減小了錢包對私鑰和地址管理的開銷;對于非常頻繁的交易,采用本發(fā)明方法尤其有效。

附圖說明

圖1是本發(fā)明提供的地址在線生成方法的流程框圖。

圖2為本發(fā)明提供的地址在線生成方法中客戶端(錢包)初始化的流程框圖。

圖3為本發(fā)明實(shí)施例提供的收款(地址生成)過程的流程框圖。

圖4為本發(fā)明實(shí)施例提供的支付過程的流程框圖。

圖5為本發(fā)明實(shí)施例提供的收款交互流程圖。

圖6為本發(fā)明實(shí)施例提供的一種地址在線生成系統(tǒng)的結(jié)構(gòu)框架圖。

具體實(shí)施方式

下面結(jié)合附圖,通過實(shí)施例進(jìn)一步描述本發(fā)明,但不以任何方式限制本發(fā)明的范圍。

本發(fā)明提供一種基于組合公鑰的密碼學(xué)貨幣地址在線生成方法,無需訪問私鑰,而使用公鑰矩陣快速生成新的公鑰,從而生成收款地址。本發(fā)明提供的地址在線生成方法可以選擇比特幣、萊特幣或以太坊等任意密碼學(xué)貨幣作為錢包方案。

以下以比特幣為例說明本發(fā)明的具體實(shí)施,假設(shè)某個(gè)互聯(lián)網(wǎng)在線零售商選擇比特幣作為支付方式,該零售商的顧客在完成訂單都需要向零售商的比特幣地址轉(zhuǎn)賬一定數(shù)額的比特幣。該零售商通過網(wǎng)站完成銷售。利用本發(fā)明提供的地址在線生成方法實(shí)現(xiàn)的地址在線生成系統(tǒng)的一種結(jié)構(gòu)如圖6所示,包括三層結(jié)構(gòu):公用服務(wù)器,公鑰矩陣在線存儲層;用戶層;私鑰離線存儲層。

本發(fā)明提供的地址在線生成方法中,給定定義在有限域上的橢圓曲線E,點(diǎn)構(gòu)成的循環(huán)群點(diǎn)G是該循環(huán)群的生成元,P的階為大素?cái)?shù)n。密碼學(xué)貨幣中通常采用的橢圓曲線參數(shù)中,n為256比特。橢圓曲線密碼中的密鑰對為(d,Q),其中d是[1,n-1]之間的隨機(jī)整數(shù),Q=[d]P為橢圓曲線點(diǎn),運(yùn)算[d]P表示整數(shù)和橢圓曲線點(diǎn)的標(biāo)量乘法計(jì)算。在密碼學(xué)貨幣中,用戶在支付的過程中需要用私鑰d為交易生成橢圓曲線數(shù)字簽名(如ECDSA)。密鑰對對應(yīng)的用戶地址是公鑰經(jīng)過哈希算法生成的哈希值,即Addr=Ha(Q),其中哈希算法Ha()通常基于標(biāo)準(zhǔn)的密碼哈希算法(如SHA-1,SHA-256,RIPEMD160等)構(gòu)造并將最后輸出的二進(jìn)制哈希值編碼為可打印的字符串。通常對于密碼學(xué)貨幣,橢圓曲線密碼參數(shù)和生成地址的哈希算法HA是選定的。

圖1是本發(fā)明提供的地址在線生成方法的流程框圖,本發(fā)明提供的地址在線生成方法由系統(tǒng)初始化過程、地址生成過程和支付簽名過程三個(gè)部分構(gòu)成。在系統(tǒng)初始化過程中,錢包生成一個(gè)主密鑰和一個(gè)公鑰矩陣,其中主密鑰可以離線存儲的方式保存在安全的私鑰存儲區(qū)中,公鑰矩陣可以在線存儲(在線存儲意味著存儲設(shè)備和所存儲的數(shù)據(jù)時(shí)刻保持“在線”狀態(tài),可以隨時(shí)讀取和修改;離線存儲是指存儲設(shè)備和所存儲的數(shù)據(jù)是離線的,在讀取和修改前都要進(jìn)行相應(yīng)的物理操作);在地址生成過程中,錢包通過交易的唯一編號生成對應(yīng)的地址,并且可以生成幾乎無限數(shù)量的地址,生成的地址可以由交易編號唯一確定,因此錢包無需保存地址;在支付簽名過程中,錢包可以通過編號生成對應(yīng)的私鑰,通過該私鑰生成簽名以完成支付。

本發(fā)明提供的地址在線生成方法中的系統(tǒng)初始化過程、地址生成過程和支付簽名過程具體執(zhí)行如下步驟:

1)系統(tǒng)初始化過程

系統(tǒng)初始化即準(zhǔn)備后續(xù)交易中用到的相關(guān)參數(shù),并完成相關(guān)參數(shù)的存儲。其中需要準(zhǔn)備的參數(shù)包括密碼哈希算法族、密碼哈希函數(shù)、以及主密鑰和公鑰矩陣。大致過程如下,首先選擇密碼哈希算法族和密碼哈希函數(shù)HT,然后隨機(jī)生成主密鑰s存儲在私鑰存儲區(qū)離線存儲,最后生成公鑰矩陣并在線存儲,至此,該系統(tǒng)的初始化任務(wù)已經(jīng)完成。

本發(fā)明具體實(shí)施中,系統(tǒng)初始化的過程如圖2所示,具體包括如下步驟:

11)選擇參數(shù)k,k為一個(gè)較小的整數(shù),如32或64。

12)選擇密碼哈希算法族其中包含k2個(gè)密碼哈希算法,這些哈希算法的定義域和值域相同,均為由素?cái)?shù)p定義的有限域Fp,具體為式1:

13)選擇密碼哈希函數(shù)HT,其輸入為任意長度的比特串,其輸出為由k個(gè)整數(shù)構(gòu)成的向量,向量中的每個(gè)元素值的范圍為[1,k],表示為式2:

HT∶{0,1}*→{a1,a2,…,ak},ai∈[1,k] (式2)

14)隨機(jī)生成橢圓曲線密碼的私鑰s,作為用戶的主密鑰;s∈[1,p-1];

15)生成k×k的公鑰矩陣表示為式3:

矩陣中的元素為主密鑰經(jīng)過哈希函數(shù)Hi,j映射后的結(jié)果和橢圓曲線點(diǎn)群生成元進(jìn)行標(biāo)量乘法的結(jié)果。

16)將s作為用戶的主密鑰存儲在私鑰存儲區(qū),公鑰矩陣P由錢包在線存儲。

2)收款(地址生成)過程

在每次收款需要新的地址時(shí),錢包可以由在線存儲的公鑰矩陣生成一個(gè)新的地址,無需訪問私鑰存儲中的主密鑰s,也無需向私鑰存儲中寫入新的私鑰。因此在本發(fā)明中,生成地址的過程完全無需訪問私鑰存儲區(qū),因此可以完全在線進(jìn)行。

地址生成的具體過程如圖3所示,具體包括如下步驟:

21)將當(dāng)前的交易賦予一個(gè)唯一的交易編號t,t的值可以是任意的比特串,其格式由實(shí)際應(yīng)用來決定,僅需保證交易編號t不重復(fù)使用。

22)通過哈希函數(shù)HT()將交易編號t映射為向量,表示為式4:

{a1,a2,…,ak}←HT(t),ai∈[1,k],1≤i≤k (式4)

23)將向量的值作索引,從公鑰矩陣的每一行選擇一個(gè)元素,并通過橢圓曲線上點(diǎn)的加法操作對這些選出的橢圓曲線點(diǎn)(即橢圓曲線密碼中的公鑰)求和,得到一個(gè)新的橢圓曲線點(diǎn)Qt,表示為式5:

橢圓曲線點(diǎn)Qt可以視為公鑰矩陣中公鑰的線性組合,這種通過公鑰線性組合方式生成新公鑰的方法又稱為組合公鑰,Qt即是組合公鑰的結(jié)果,也是一個(gè)合法的橢圓曲線密碼;

24)通過哈希函數(shù)HA()將組合公鑰獲得的新公鑰Qt映射為地址At,表示為式6:

At←HT(Qt) (式6)

25)將新生成的地址At返回給用戶作為收款地址。

在本方案中,錢包僅需要保存公鑰矩陣,并記錄完成付款的交易的交易編號,而無需保存該交易的地址及地址生成過程中的其他中間結(jié)果。因?yàn)榈刂泛椭虚g結(jié)果均可由公鑰矩陣和交易編號即時(shí)生成。

3)支付簽名過程

用戶通過某次交易(交易編號為t)得到一定數(shù)額的比特幣,這意味著該交易的地址中有一定數(shù)額的比特幣。如果用戶希望將該地址中的比特幣支付給其他用戶,那么需要用地址關(guān)聯(lián)的私鑰,用于生成數(shù)字簽名。

本實(shí)施例的支付簽名過程如圖4所示,具體包括如下步驟:

31)給定用戶獲得收款的交易編號為t;

32)訪問私鑰存儲區(qū)讀取主密鑰s;

33)通過哈希函數(shù)Ht將交易編號t映射為向量,表示為式7:

{a1,a2,…,ak}←HT(t),ai∈[1,k],1≤i≤k (式7)

34)通過式8生成私鑰dt

35)用私鑰dt完成對付款交易信息做數(shù)字簽名,完成付款。

本發(fā)明提供的地址在線生成方法中,假設(shè)在線零售網(wǎng)店系統(tǒng)中維護(hù)了每筆訂單的訂單號,零售商通過公鑰因子矩陣、訂單號,生成該訂單對應(yīng)的地址;并將地址提供給客戶(也可以將訂單號直接提供給客戶,客戶向服務(wù)器發(fā)起請求,獲得本次交易地址,收款交互流程如圖5所示過程),客戶可以通過向該地址付款完成交易。網(wǎng)店的系統(tǒng)中會記錄已經(jīng)付款的訂單的訂單號。零售商可以根據(jù)交易訂單號對應(yīng)的交易信息進(jìn)行驗(yàn)證,以確定訂單支付已經(jīng)完成。

需要注意的是,公布實(shí)施例的目的在于幫助進(jìn)一步理解本發(fā)明,但是本領(lǐng)域的技術(shù)人員可以理解:在不脫離本發(fā)明及所附權(quán)利要求的精神和范圍內(nèi),各種替換和修改都是可能的。因此,本發(fā)明不應(yīng)局限于實(shí)施例所公開的內(nèi)容,本發(fā)明要求保護(hù)的范圍以權(quán)利要求書界定的范圍為準(zhǔn)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1