本發(fā)明涉及數(shù)據(jù)存取證領(lǐng)域,尤其涉及一種基于多重哈希算法的存取證方法及其裝置。
背景技術(shù):
隨著互聯(lián)網(wǎng)行業(yè)飛速發(fā)展,電子數(shù)據(jù)逐步代替了紙質(zhì)材料,成為了各個(gè)傳統(tǒng)行業(yè)獲得新發(fā)展的主要載體,其高效性和易存儲(chǔ)性等優(yōu)勢(shì)十分明顯;然而,在司法過(guò)程中,電子數(shù)據(jù)的易無(wú)痕修改、易滅失等特點(diǎn)又成為影響其成為證據(jù)的最大問(wèn)題。為了彌補(bǔ)這些不足,市場(chǎng)上常用副本法對(duì)電子數(shù)據(jù)進(jìn)行存證,即在電子數(shù)據(jù)生成的同時(shí),將數(shù)據(jù)副本交付給獨(dú)立的存證方保存,將來(lái)電子數(shù)據(jù)需要成為證據(jù)的時(shí)候,調(diào)取存證方的副本與之對(duì)比,若兩方數(shù)據(jù)一致,才可證明數(shù)據(jù)的原始性,方可成為有效證據(jù)。
然而,某些場(chǎng)景下,副本數(shù)據(jù)量很大,保存副本負(fù)擔(dān)沉重,不利于存證系統(tǒng)的高效化。
技術(shù)實(shí)現(xiàn)要素:
為了克服現(xiàn)有技術(shù)的不足,本發(fā)明提供了一種基于多重哈希算法的數(shù)據(jù)存取證方法及其裝置,通過(guò)多重哈希算法計(jì)算原始數(shù)據(jù)對(duì)應(yīng)明文標(biāo)識(shí)數(shù)據(jù)塊的哈希值并存儲(chǔ),本發(fā)明存證方僅需存儲(chǔ)哈希值,大大降低了存證系統(tǒng)的對(duì)儲(chǔ)能空間的要求,實(shí)現(xiàn)了存證系統(tǒng)的高效化,其具體采用的技術(shù)方案如下:
一種基于多重哈希算法的數(shù)據(jù)存證方法,包括以下步驟:
確定需要存證的原始數(shù)據(jù);
將所述原始數(shù)據(jù)按約定格式編碼為明文標(biāo)識(shí)數(shù)據(jù)塊;
按約定哈希算法列表,計(jì)算所述明文標(biāo)識(shí)數(shù)據(jù)塊的多重哈希值;
存儲(chǔ)所述多重哈希值,并生成對(duì)應(yīng)的索引標(biāo)簽。
可選的,還包括:
存儲(chǔ)所述明文標(biāo)識(shí)數(shù)據(jù)塊的數(shù)據(jù)大小、所述約定哈希算法列表以及用戶(hù)信息;并且所述數(shù)據(jù)大小、所述約定哈希算法列表以及所述用戶(hù)信息存儲(chǔ)在所述索引標(biāo)簽下。
可選的,所述索引標(biāo)簽為用戶(hù)識(shí)別號(hào)。
可選的,還包括:記錄存證時(shí)間。
可選的,還包括:根據(jù)已有數(shù)據(jù)識(shí)別號(hào),生成對(duì)應(yīng)的自增數(shù)據(jù)識(shí)別號(hào)。
可選的,所述哈希算法列表包括md5、sha1、sha224、sha384中的3種及三種以上。
一種基于多重哈希算法的數(shù)據(jù)存證裝置,包括:
確定模塊,確定需要存證的原始數(shù)據(jù);
編碼模塊,將所述原始數(shù)據(jù)按約定格式編碼為明文標(biāo)識(shí)數(shù)據(jù)塊;
計(jì)算模塊,按約定哈希算法列表,計(jì)算所述明文標(biāo)識(shí)數(shù)據(jù)塊的原始多重哈希值;
存儲(chǔ)模塊,存儲(chǔ)所述多重哈希值,并生成對(duì)應(yīng)的索引標(biāo)簽。
一種基于多重哈希算法的數(shù)據(jù)取證方法,包括以下步驟:
獲取取證數(shù)據(jù)塊;
根據(jù)約定哈希算法列表,計(jì)算所述取證數(shù)據(jù)塊的多重哈希值;
比較所述取證數(shù)據(jù)塊的多重哈希值和明文標(biāo)識(shí)數(shù)據(jù)塊的多重哈希值;
判斷所述取證數(shù)據(jù)塊的多重哈希值和明文標(biāo)識(shí)數(shù)據(jù)塊的多重哈希值是否相等;若相等,則取證成功;若不相等,則取證失敗。
可選的,所述獲取取證數(shù)據(jù)塊包括:
數(shù)據(jù)方將所述取證數(shù)據(jù)塊位置發(fā)送給存證方;
存證方調(diào)取通過(guò)所述取證數(shù)據(jù)塊位置調(diào)取所述取證數(shù)據(jù)塊。
一種基于多重哈希算法的數(shù)據(jù)取證裝置,包括:
獲取模塊,獲取取證數(shù)據(jù)塊;
計(jì)算模塊,根據(jù)約定哈希算法列表,計(jì)算所述取證數(shù)據(jù)塊的多重哈希值;
比較模塊,比較所述取證數(shù)據(jù)塊的多重哈希值和明文標(biāo)識(shí)數(shù)據(jù)塊的多重哈希值;
判斷模塊,判斷所述取證數(shù)據(jù)塊的多重哈希值和明文標(biāo)識(shí)數(shù)據(jù)塊的多重哈希值是否相等;若相等,則取證成功;若不相等,則取證失敗。
與現(xiàn)有技術(shù)相比,本技術(shù)方案的有益效果是:利用多重哈希算法計(jì)算原始數(shù)據(jù)對(duì)應(yīng)明文標(biāo)識(shí)數(shù)據(jù)塊的哈希值,并僅需存儲(chǔ)哈希值,大大降低了存證系統(tǒng)對(duì)儲(chǔ)存空間的需求;而且多重哈希算法不可逆,且抗沖突性極好,大大提高了存證系統(tǒng)的可靠性和高效性。
附圖說(shuō)明
圖1是一種基于多重哈希算法的數(shù)據(jù)存證方法的流程框圖;
圖2是一種基于多重哈希算法的數(shù)據(jù)存證裝置的結(jié)構(gòu)框圖;
圖3是一種基于多重哈希算法的數(shù)據(jù)取證方法的流程框圖;
圖4是一種基于多重哈希算法的數(shù)據(jù)取證裝置的結(jié)構(gòu)框圖。
具體實(shí)施方式
下面結(jié)合附圖,通過(guò)具體實(shí)施例,對(duì)本發(fā)明的技術(shù)方案進(jìn)行清楚、完整的描述。
請(qǐng)參考圖1,本發(fā)明提供了一種基于多重哈希算法的數(shù)據(jù)存證方法,包括以下步驟:
s11),確定需要存證的原始數(shù)據(jù):原始數(shù)據(jù)由數(shù)據(jù)方?jīng)Q定和提供。
s12),將原始數(shù)據(jù)編碼為明文標(biāo)識(shí)數(shù)據(jù)塊:將所述原始數(shù)據(jù)按照數(shù)據(jù)方與存證方約定的格式編碼為明文標(biāo)識(shí)數(shù)據(jù)塊:具體編碼工作由存證方或者數(shù)據(jù)方完成。
s13),計(jì)算明文標(biāo)識(shí)數(shù)據(jù)塊的多重哈希值:按約定哈希算法列表計(jì)算所述明文標(biāo)識(shí)數(shù)據(jù)塊的多重哈希值;所述約定哈希算法列表由存證方和數(shù)據(jù)方共同約定;具體計(jì)算工作由存證方或者數(shù)據(jù)方完成。
s14),存儲(chǔ)多重哈希值,并生成對(duì)應(yīng)的索引標(biāo)簽:由存證方對(duì)所述多重哈希值進(jìn)行存儲(chǔ),并由存證方生成一個(gè)與所述多重哈希值一一對(duì)應(yīng)的索引標(biāo)簽。
當(dāng)步驟s11、s12、s13由數(shù)據(jù)方完成時(shí),數(shù)據(jù)方還需將步驟s13中計(jì)算出的多重哈希值發(fā)送給存證方,以便讓存證方執(zhí)行步驟s14。為了原始數(shù)據(jù)不被第三方知曉、保證存證方的單一性及高效性,防止由于數(shù)據(jù)處理造成存證方的系統(tǒng)故障,優(yōu)選的,步驟s11、s12、s13由數(shù)據(jù)方完成。
json(javascriptobjectnotation,js對(duì)象標(biāo)記)是一種輕量級(jí)的數(shù)據(jù)交換格式。它基于ecmascript規(guī)范的一個(gè)子集,采用完全獨(dú)立于編程語(yǔ)言的文本格式來(lái)存儲(chǔ)和表示數(shù)據(jù),簡(jiǎn)潔和清晰的層次結(jié)構(gòu)使得json成為理想的數(shù)據(jù)交換語(yǔ)言,易于人閱讀和編寫(xiě),同時(shí)也易于機(jī)器解析和生成,并有效地提升網(wǎng)絡(luò)傳輸效率。因此在一個(gè)實(shí)施例中,數(shù)據(jù)方與存證方約定的格式為json,編碼后的明文數(shù)據(jù)塊為json數(shù)據(jù)塊。
本發(fā)明提供的基于多重哈希算法的數(shù)據(jù)存證方法,不管原始數(shù)據(jù)有多大,其對(duì)應(yīng)的多重哈希值都是128位數(shù)據(jù),存證方只需對(duì)128位的多重哈希值進(jìn)行存儲(chǔ),極大縮小了保存數(shù)據(jù)的大小,相較于副本法大大降低了保存負(fù)擔(dān)。
相對(duì)于單一摘要存證法,采用了多重哈希算法,大大提高了沖突空間,使得篡改原始數(shù)據(jù)不被發(fā)現(xiàn)成為不可能,使得存證系統(tǒng)的可靠性更高。
在一個(gè)實(shí)施例中,數(shù)據(jù)方為某平臺(tái),比如,某p2p平臺(tái),它承載個(gè)人對(duì)個(gè)人的轉(zhuǎn)借貸業(yè)務(wù);數(shù)據(jù)包括實(shí)名認(rèn)證的用戶(hù)信息、出借方交易記錄、貸款方交易記錄等信息。因?yàn)闃I(yè)務(wù)的要求,其用戶(hù)的實(shí)名認(rèn)證信息以及借貸賬單等業(yè)務(wù)信息,不能泄露給第三方的,除非在出現(xiàn)糾紛的情況下,雙方才會(huì)同意將某些涉及糾紛的原始數(shù)據(jù)提供給有公信力的第三方,作為公證證據(jù)或司法鑒定檢材,或進(jìn)一步提交給司法仲裁裁決。
此時(shí),由于p2p平臺(tái)與客戶(hù)之間存在委托和受托關(guān)系,而平臺(tái)自身與客戶(hù)之間存在借貸關(guān)系,平臺(tái)自身與數(shù)據(jù)的利益相關(guān),即平臺(tái)在將來(lái)某一時(shí)刻存在修改數(shù)據(jù)的動(dòng)機(jī)。平臺(tái)為了提高公信力,在原始數(shù)據(jù)生成的第一時(shí)間,對(duì)所述原始數(shù)據(jù)按照約定格式進(jìn)行編碼得到明文標(biāo)識(shí)數(shù)據(jù)塊,并根據(jù)約定哈希算法列表計(jì)算所述明文標(biāo)識(shí)數(shù)據(jù)塊的多重哈希值,再將所述多重哈希值發(fā)送至存證方,以備將來(lái)出現(xiàn)糾紛時(shí),證明原始數(shù)據(jù)的原始性。
一般來(lái)說(shuō),存證方是一個(gè)有公證職能的司法機(jī)構(gòu),該機(jī)構(gòu)接受數(shù)據(jù)方委托,為數(shù)據(jù)方提供多重哈希值的保存。數(shù)據(jù)方在生成每筆業(yè)務(wù)數(shù)據(jù)的第一時(shí)間,都應(yīng)該將原始數(shù)據(jù)按照雙方約定進(jìn)行編碼,再進(jìn)行多重哈希算法處理,并將得到的多重哈希值傳至存證方保存,存證方為所述多重哈希值生成索引標(biāo)簽。當(dāng)需要對(duì)取證數(shù)據(jù)進(jìn)行原始性判斷時(shí),按照約定格式對(duì)其編碼后再按照約定哈希算法列表計(jì)算出其多重哈希值,如果該取證數(shù)據(jù)對(duì)應(yīng)的多重哈希值和存證方保存的對(duì)應(yīng)的多重哈希值相同,則取證成功;否則,表明取證數(shù)據(jù)已被篡改,不能成為有效證據(jù)。
本實(shí)施例中,為了多方面保證取證數(shù)據(jù)的原始性,數(shù)據(jù)方還將所述明文標(biāo)識(shí)數(shù)據(jù)塊的數(shù)據(jù)大小、所述約定哈希算法列表以及用戶(hù)信息發(fā)送給存證方,存證方將所述數(shù)據(jù)大小、所述約定哈希算法列表以及所述用戶(hù)信息存儲(chǔ)在所述索引標(biāo)簽下。判斷過(guò)程中,除了判斷取證數(shù)據(jù)的多重哈希值和原始數(shù)據(jù)的多重哈希值是否相等外,還需判斷數(shù)據(jù)大小,使用的哈希算法列表以及用戶(hù)信息是否一致;如果一致,取證成功;否則,表明取證數(shù)據(jù)已被篡改,不能成為有效證據(jù)。
本實(shí)施例中,具體存證方法如下:數(shù)據(jù)方在系統(tǒng)的運(yùn)行過(guò)程中,在用戶(hù)實(shí)名認(rèn)證數(shù)據(jù)和賬務(wù)數(shù)據(jù)(等等將來(lái)可能發(fā)生爭(zhēng)議的數(shù)據(jù))保存為原始數(shù)據(jù)后,系統(tǒng)觸發(fā)一個(gè)針對(duì)數(shù)據(jù)層的存證進(jìn)程,專(zhuān)門(mén)負(fù)責(zé)新的原始數(shù)據(jù)的處理,并將處理結(jié)果向存證方發(fā)送。
在另一個(gè)實(shí)施例中,用戶(hù)需要進(jìn)行認(rèn)證才能使用存證系統(tǒng),認(rèn)證后,存證方生成一個(gè)用戶(hù)識(shí)別號(hào)給用戶(hù),后續(xù)用戶(hù)需要對(duì)原始數(shù)據(jù)進(jìn)行存證時(shí),利用用戶(hù)識(shí)別號(hào)作為該原始數(shù)據(jù)對(duì)應(yīng)的多重哈希值的索引標(biāo)簽,當(dāng)該用戶(hù)進(jìn)行取證驗(yàn)證時(shí),存證方調(diào)出該用戶(hù)的用戶(hù)識(shí)別號(hào)對(duì)應(yīng)的多重哈希值作為比較對(duì)象。
在另一個(gè)實(shí)施例中,數(shù)據(jù)方還將存證時(shí)間發(fā)送給存證方,或者存證方自行記錄存證時(shí)間,并且存證方對(duì)所述存證時(shí)間進(jìn)行存儲(chǔ),以便取證過(guò)程中多一個(gè)參考因素,保證數(shù)據(jù)的真實(shí)性。
在一個(gè)實(shí)施例中,存證方根據(jù)需要對(duì)數(shù)據(jù)方發(fā)送來(lái)的多重哈希值進(jìn)行記錄,并生成對(duì)應(yīng)的數(shù)據(jù)識(shí)別號(hào),比如存證方接收到第一個(gè)多重哈希值時(shí),生成的數(shù)據(jù)識(shí)別號(hào)為1,1和第一個(gè)多重哈希值對(duì)應(yīng);當(dāng)接收到第二個(gè)多重哈希值時(shí),生成的數(shù)據(jù)識(shí)別號(hào)為2,2和第二個(gè)多重哈希值對(duì)應(yīng);當(dāng)接收到第n個(gè)多重哈希值時(shí),生成的數(shù)據(jù)識(shí)別號(hào)為n,n和第n個(gè)多重哈希值對(duì)應(yīng);以此類(lèi)推,以便將來(lái)取證驗(yàn)證時(shí)核實(shí)數(shù)據(jù)的業(yè)務(wù)時(shí)序邏輯,當(dāng)然,所述數(shù)據(jù)識(shí)別號(hào)也可作為對(duì)應(yīng)的多重哈希值的索引標(biāo)簽。
數(shù)據(jù)方和存證方約定的哈希算法列表包括md5、sha1、sha224、sha384中的3中及三種以上。
參考圖2,一種基于多重哈希算法的數(shù)據(jù)存證裝置,包括:
確定模塊11,確定需要存證的原始數(shù)據(jù);
編碼模塊12,將所述原始數(shù)據(jù)按約定格式編碼為明文標(biāo)識(shí)數(shù)據(jù)塊;
計(jì)算模塊13,按約定哈希算法列表,計(jì)算所述明文標(biāo)識(shí)數(shù)據(jù)塊的原始多重哈希值;
存儲(chǔ)模塊14,存儲(chǔ)所述多重哈希值,并生成對(duì)應(yīng)的索引標(biāo)簽。
優(yōu)選的,確定模塊11、編碼模塊12、計(jì)算模塊13存在于數(shù)據(jù)方,而存儲(chǔ)模塊14存在于存證方,計(jì)算模塊13將計(jì)算出的多重哈希值發(fā)送給存證方的存儲(chǔ)模塊14進(jìn)行存儲(chǔ)。
參考圖3,一種基于多重哈希算法的數(shù)據(jù)取證方法,包括以下步驟:
s21),獲取取證數(shù)據(jù)塊;
s22),根據(jù)約定哈希算法列表,計(jì)算所述取證數(shù)據(jù)塊的多重哈希值;
s23),比較所述取證數(shù)據(jù)塊的多重哈希值和明文標(biāo)識(shí)數(shù)據(jù)塊的多重哈希值;判斷所述取證數(shù)據(jù)塊的多重哈希值和明文標(biāo)識(shí)數(shù)據(jù)塊的多重哈希值是否相等;若相等,則取證成功;若不相等,則取證失敗。
在一個(gè)具體實(shí)施例中,數(shù)據(jù)取證流程是由數(shù)據(jù)方根據(jù)用戶(hù)要求主動(dòng)發(fā)起,由存證方負(fù)責(zé)對(duì)比多重哈希值無(wú)誤之后,將數(shù)據(jù)作為轉(zhuǎn)化為原始數(shù)據(jù)。具體流程包括:
1、數(shù)據(jù)方接收到用戶(hù)要求,將某段或者某幾段的運(yùn)營(yíng)數(shù)據(jù)做出取證處理,以便將來(lái)協(xié)商、調(diào)解或者提交司法。該數(shù)據(jù)成為證據(jù)的首要條件就是數(shù)據(jù)必須是原始未經(jīng)修改的。
2、為了得到數(shù)據(jù)原始性的認(rèn)定,用戶(hù)先向存證方提交實(shí)名化資料,授權(quán)存證方調(diào)取證據(jù)。
3、數(shù)據(jù)方將取證保全需求和取證數(shù)據(jù)塊位置發(fā)送給存證方,存證方向數(shù)據(jù)方調(diào)取數(shù)據(jù)塊原文。
4、存證方計(jì)算按照約定哈希算法列表計(jì)算出取證數(shù)據(jù)塊的多重哈希值,并與存證數(shù)據(jù)庫(kù)中保存的對(duì)應(yīng)的多重哈希值對(duì)比。
5、對(duì)比一致,完成取證保全流程,數(shù)據(jù)流存到證據(jù)保全數(shù)據(jù)庫(kù)。
在本實(shí)施例中,根據(jù)數(shù)據(jù)存證方法中的存證內(nèi)容,參與對(duì)比的還有數(shù)據(jù)快的大小、存證時(shí)間等等;如果有一項(xiàng)對(duì)比失敗,丟棄數(shù)據(jù)塊,取證保全失敗。
參考圖4,一種基于多重哈希算法的數(shù)據(jù)取證裝置,包括:
獲取模塊21,獲取取證數(shù)據(jù)塊;
計(jì)算模塊22,根據(jù)約定哈希算法列表,計(jì)算所述取證數(shù)據(jù)塊的多重哈希值;
比較模塊23,比較所述取證數(shù)據(jù)塊的多重哈希值和明文標(biāo)識(shí)數(shù)據(jù)塊的多重哈希值是否相等;若相等,則取證成功;若不相等,則取證失敗。
本發(fā)明提供的數(shù)據(jù)存證方法,首先是通過(guò)哈希算法的單向性來(lái)保障數(shù)據(jù)的隔離,確保企業(yè)開(kāi)展存證業(yè)務(wù)的同時(shí)不影響運(yùn)營(yíng)數(shù)據(jù)的安全性。另一方面,本方案通過(guò)多重哈希算法,改善了單一哈希算法的抗沖突性,保證了數(shù)據(jù)的不可修改性。數(shù)據(jù)方以多重哈希算法的方法存證,避免了單一哈希算法的碰撞風(fēng)險(xiǎn),完全避免了今后原始數(shù)據(jù)被修改而每個(gè)哈希值都保持不變的可能,保證了數(shù)據(jù)從存證時(shí)間開(kāi)始即進(jìn)入無(wú)法篡改階段。另外,存證方為具備公證職能的司法機(jī)構(gòu),其系統(tǒng)獨(dú)立擁有,即使數(shù)據(jù)利益相關(guān)方事后有修改數(shù)據(jù)的人為需求,也無(wú)法做到不被發(fā)現(xiàn)。系統(tǒng)從技術(shù)和業(yè)務(wù)隔離上做到了極強(qiáng)的安全性。
本專(zhuān)利采用了多重哈希的方式,輔以原數(shù)據(jù)大小驗(yàn)證的方式,極大改善了單一哈希算法的安全性,據(jù)初步測(cè)算,采用sha-1+md5組合方式,比單一md5方式安全性提高43億倍,如果再加上sha-224,難度又會(huì)提升2.7x10^67倍,原則上不存在被破解的可能,且具備很強(qiáng)的單向性,使存證業(yè)務(wù)完全不影響數(shù)據(jù)的商業(yè)秘密和用戶(hù)隱私。
本發(fā)明雖然已以較佳實(shí)施例公開(kāi)如上,但其并不是用來(lái)限定本發(fā)明,任何本領(lǐng)域技術(shù)人員在不脫離本發(fā)明的精神和范圍內(nèi),都可以利用上述揭示的方法和技術(shù)內(nèi)容對(duì)本發(fā)明技術(shù)方案做出可能的變動(dòng)和修改,因此,凡是未脫離本發(fā)明技術(shù)方案的內(nèi)容,依據(jù)本發(fā)明的技術(shù)實(shí)質(zhì)對(duì)以上實(shí)施例所作的任何簡(jiǎn)單修改、等同變化及修飾,均屬于本發(fā)明技術(shù)方案的保護(hù)范圍。