1.一種基于互聯(lián)網(wǎng)區(qū)塊鏈技術(shù)的數(shù)字簽名方法,其特征在于,包括以下步驟:
S1、密鑰的生成與分發(fā);
S2、簽名過(guò)程;
S3、簽名驗(yàn)證。
2.根據(jù)權(quán)利要求1所述的基于互聯(lián)網(wǎng)區(qū)塊鏈技術(shù)的數(shù)字簽名方法,其特征在于:所述步驟S1中秘鑰的生成和分發(fā)具體包括以下步驟:
S11:用戶生成秘鑰;
S12:用戶輸入口令碼;
S13:用戶確認(rèn)口令碼;
S14:節(jié)點(diǎn)程序根據(jù)口令碼生成RSA密鑰對(duì);
S15:判斷節(jié)點(diǎn)中是否已存在密鑰對(duì);
S16:根據(jù)步驟S15的判斷結(jié)果,如果節(jié)點(diǎn)中存在密鑰對(duì),則需要替換已有密鑰對(duì),如果節(jié)點(diǎn)中不存在密鑰對(duì),將存儲(chǔ)密封對(duì)存儲(chǔ)在節(jié)點(diǎn)中;
S17:在節(jié)點(diǎn)網(wǎng)絡(luò)中通過(guò)P2P的方式分層分發(fā)公鑰,每層分發(fā)n個(gè)節(jié)點(diǎn),其他節(jié)點(diǎn)存儲(chǔ)該公鑰。
3.根據(jù)權(quán)利要求1所述的基于互聯(lián)網(wǎng)區(qū)塊鏈技術(shù)的數(shù)字簽名方法,其特征在于:所述節(jié)點(diǎn)為運(yùn)行在一臺(tái)設(shè)備上的一份客戶端軟件,且稱為一個(gè)節(jié)點(diǎn);同一臺(tái)設(shè)備上只允許運(yùn)行一份客戶端軟件。
4.根據(jù)權(quán)利要求1所述的基于互聯(lián)網(wǎng)區(qū)塊鏈技術(shù)的數(shù)字簽名方法,其特征在于:所述步驟S2中簽名過(guò)程具體包括以下步驟:
S21:用戶簽名;
S22:用戶在所屬節(jié)點(diǎn)(發(fā)起節(jié)點(diǎn))輸入生成秘鑰時(shí)的口令碼;
S23:發(fā)起節(jié)點(diǎn)從系統(tǒng)中隨機(jī)選取m個(gè)非自身節(jié)點(diǎn),用這m個(gè)節(jié)點(diǎn)的公鑰分別對(duì)目標(biāo)數(shù)據(jù)摘要進(jìn)行加密,在對(duì)加密后的密文用發(fā)起節(jié)點(diǎn)的私鑰進(jìn)行加密;
S24:將m份密文與目標(biāo)數(shù)據(jù)摘要明文打包,分別通過(guò)P2P發(fā)送給這m個(gè)節(jié)點(diǎn),同時(shí)發(fā)起節(jié)點(diǎn)在算法鏈的最后創(chuàng)建一個(gè)新的單元起始片段;
S25:m個(gè)節(jié)點(diǎn)分別收到數(shù)據(jù)后,按照相同的過(guò)程和算法再分發(fā)m個(gè)節(jié)點(diǎn),同時(shí)m個(gè)節(jié)點(diǎn)分別在發(fā)起節(jié)點(diǎn)創(chuàng)建的算法鏈新單元的起始片段后,添加本輪驗(yàn)算的算法片段;
S26:重復(fù)上述過(guò)程,一直分發(fā)m層后不再繼續(xù)分發(fā),同時(shí)每一層在驗(yàn)算結(jié)束后都將本輪驗(yàn)算記錄在算法鏈中,并把簽名結(jié)構(gòu)記錄到數(shù)據(jù)鏈;
S27:最后一層節(jié)點(diǎn)驗(yàn)算后將結(jié)果按照原路返回發(fā)起節(jié)點(diǎn),同時(shí),發(fā)起節(jié)點(diǎn)收到m/2個(gè)節(jié)點(diǎn)返回后,將算法鏈的新單元封閉,簽名過(guò)程結(jié)束。
5.根據(jù)權(quán)利要求1所述的基于互聯(lián)網(wǎng)區(qū)塊鏈技術(shù)的數(shù)字簽名方法,其特征在于:所述步驟S3中簽名驗(yàn)證的具體步驟為:需要進(jìn)行驗(yàn)證的節(jié)點(diǎn),查詢節(jié)點(diǎn)中存儲(chǔ)的數(shù)據(jù)鏈即可,再查詢前可以請(qǐng)求更新到最新的數(shù)據(jù)鏈。
6.根據(jù)權(quán)利要求1所述的基于互聯(lián)網(wǎng)區(qū)塊鏈技術(shù)的數(shù)字簽名方法,其特征在于:所述算法鏈為:數(shù)字簽名驗(yàn)證算法是分布在各個(gè)不同節(jié)點(diǎn)中的,不同的節(jié)點(diǎn)按順序分別執(zhí)行算法的一個(gè)片段,所有片段組合起來(lái)實(shí)現(xiàn)完整的數(shù)字簽名驗(yàn)證算法。所有的這些算法片段按順序鏈接起來(lái)保存在每個(gè)節(jié)點(diǎn)中。
7.根據(jù)權(quán)利要求1所述的基于互聯(lián)網(wǎng)區(qū)塊鏈技術(shù)的數(shù)字簽名方法,其特征在于:所述數(shù)據(jù)鏈為:各個(gè)節(jié)點(diǎn)應(yīng)用數(shù)字簽名算法進(jìn)行簽名的結(jié)果數(shù)據(jù),將按照時(shí)間的先后順序完整的保存在每個(gè)節(jié)點(diǎn)中,組成一個(gè)鏈?zhǔn)浇Y(jié)構(gòu)。