專利名稱:點對點數(shù)據(jù)獲取方法、系統(tǒng)及服務器的制作方法
技術領域:
本發(fā)明涉及網(wǎng)絡通信技術,尤其涉及一種點對點數(shù)據(jù)獲取方法、系統(tǒng)及服務器。
背景技術:
現(xiàn)有點對點(Peer to Peer ;簡稱為P2P)下載是請求節(jié)點向服務器請求節(jié)點列 表,在得到節(jié)點列表后向節(jié)點列表中的源節(jié)點請求數(shù)據(jù)下載,從連接建立成功的源節(jié)點下 載數(shù)據(jù);同時,該請求節(jié)點也會作為源節(jié)點向其他節(jié)點提供數(shù)據(jù)。在數(shù)據(jù)交換過程中,如果 非授權節(jié)點得到源節(jié)點的地址,直接向源節(jié)點請求數(shù)據(jù)下載,則該非授權節(jié)點也會得到合 法的數(shù)據(jù)內(nèi)容,即這種數(shù)據(jù)交換過程存在安全問題。針對上述問題,現(xiàn)有技術采用非對稱密鑰對交互過程中的數(shù)據(jù)進行加密,以保證 數(shù)據(jù)安全。常見的有一次一密的加密方式和采用一個非對稱密鑰對多個數(shù)據(jù)塊同時加密的 方式。采用這種非對稱密鑰的加密方式,請求節(jié)點收到加密數(shù)據(jù)后,需要向服務器請求解密 數(shù)據(jù)塊(即解密密鑰),在收到服務器的解密數(shù)據(jù)塊后對加密數(shù)據(jù)進行解密,獲取數(shù)據(jù)。該 方式在數(shù)據(jù)傳輸過程中存在大量請求節(jié)點向服務器請求解密數(shù)據(jù)塊的交互過程,降低了數(shù) 據(jù)傳輸?shù)男?。另外,現(xiàn)有技術中還有采用對稱密鑰對交互過程中的數(shù)據(jù)進行加密,以保證數(shù)據(jù) 安全的方式。目前在采用對稱密鑰的方法中,對稱密鑰包含在種子文件中,密鑰由種子服務 器預先導入到P2P網(wǎng)絡中;在傳輸過程中,文件被分為片斷,每個片斷采用預先導入的密鑰 進行加密,請求節(jié)點采用預先導入的密鑰進行解密,以獲取數(shù)據(jù)。與非對稱密鑰方式相比, 該方式無需請求節(jié)點與種子服務器進行交互,提高了傳輸效率,但是,對于某一固定文件來 說,密鑰是不變的,如果有授權請求節(jié)點散布了該密鑰或被非法用戶破解了該密鑰,則該文 件的分發(fā)將不受控,因此,在該加密方式下文件同樣存在安全隱患。為了進一步提高數(shù)據(jù)傳 輸?shù)陌踩?,現(xiàn)有技術又提出一種新的對稱密鑰方法,即對同一片斷用不同的密鑰來加密, 源節(jié)點將用不同密鑰加密的片斷分別發(fā)送給不同的請求節(jié)點,這樣就要求源節(jié)點記錄每個 請求節(jié)點和每個片斷對應密鑰的關系并把該對應關系發(fā)送給請求節(jié)點,這樣請求節(jié)點在收 到加密片斷后可以采用正確的密鑰來解密片斷獲取數(shù)據(jù)。由于在P2P網(wǎng)絡中,每個節(jié)點既 是請求節(jié)點又是源節(jié)點,因此,每個節(jié)點都要存儲大量片斷、密鑰和請求節(jié)點的對應關系, 當P2P網(wǎng)絡中節(jié)點數(shù)量較多時,這種方式會降低節(jié)點的處理能力,且對節(jié)點的要求較高。由上述分析可見現(xiàn)有P2P數(shù)據(jù)加密方式在安全性問題和其他傳輸性能問題(例 如傳輸效率問題或節(jié)點處理能力問題)上無法做到較好的平衡,因此,在保證P2P系統(tǒng)傳輸 性能的同時保證數(shù)據(jù)傳輸?shù)陌踩缘膯栴}有待進一步解決。
發(fā)明內(nèi)容
本發(fā)明提供一種點對點數(shù)據(jù)獲取方法、系統(tǒng)及服務器,用以在保證P2P系統(tǒng)傳輸 性能的同時,保證數(shù)據(jù)傳輸?shù)陌踩?。本發(fā)明提供一種點對點數(shù)據(jù)獲取方法,包括
4
源節(jié)點根據(jù)服務器下發(fā)的初始密鑰,加密內(nèi)容數(shù)據(jù)的第一數(shù)據(jù)片斷形成第一密文 片斷,并將所述第一密文片斷發(fā)送給請求節(jié)點;所述服務器至少向所述請求節(jié)點和所述源節(jié)點發(fā)送一次第一密鑰更新消息,所述 第一密鑰更新消息包括第一更新密鑰;所述源節(jié)點根據(jù)所述第一更新密鑰加密所述內(nèi)容數(shù)據(jù)的第二數(shù)據(jù)片斷,并在所述 第二數(shù)據(jù)片斷中添加密鑰更新標識,形成第二密文片斷,并向所述請求節(jié)點發(fā)送所述第二 密文片斷;所述請求節(jié)點接收所述第二密文片斷,采用所述密鑰更新標識對應的第一更新密 鑰解密所述第二密文片斷,以獲取所述內(nèi)容數(shù)據(jù)。本發(fā)明提供一種服務器,包括第一發(fā)送模塊,用于向源節(jié)點和請求節(jié)點發(fā)送初始密鑰,以使所述源節(jié)點根據(jù)所 述初始密鑰加密內(nèi)容數(shù)據(jù)的第一數(shù)據(jù)片斷形成第一密文片斷,并使所述請求節(jié)點根據(jù)所述 初始密鑰解密所述第一密文片斷;第二發(fā)送模塊,用于在所述第一發(fā)送模塊發(fā)送所述初始密鑰后,至少向所述請求 節(jié)點和所述源節(jié)點發(fā)送一次第一密鑰更新消息,所述第一密鑰更新消息包括第一更新密 鑰,以使所述源節(jié)點根據(jù)所述第一更新密鑰加密所述內(nèi)容數(shù)據(jù)的第二數(shù)據(jù)片斷形成第二密 文片斷,并使所述請求節(jié)點根據(jù)所述第一更新密鑰解密所述第二密文片斷,以獲取所述內(nèi) 容數(shù)據(jù)。本發(fā)明提供一種點對點數(shù)據(jù)獲取系統(tǒng),包括本發(fā)明提供的任一服務器,還包括源 節(jié)點和請求節(jié)點;所述請求節(jié)點,用于接收所述服務器發(fā)送的第一密鑰更新消息,所述第一密鑰更 新消息包括第一更新密鑰;并用于接收所述源節(jié)點發(fā)送的第一密文片斷和第二密文片斷, 并根據(jù)所述第一更新密鑰解密所述第二密文片斷,以獲取內(nèi)容數(shù)據(jù);所述源節(jié)點,用于接收所述服務器發(fā)送的所述初始密鑰和所述第一密鑰更新消 息,根據(jù)所述初始密鑰加密所述內(nèi)容數(shù)據(jù)的第一數(shù)據(jù)片斷形成所述第一密文片斷和根據(jù)所 述第一更新密鑰加密所述內(nèi)容數(shù)據(jù)的第二數(shù)據(jù)片斷,并在所述第二數(shù)據(jù)片斷中添加密鑰更 新標識形成所述第二密文片斷,并將所述第一密文片斷和所述第二密文片斷發(fā)送給所述請 求節(jié)點。本發(fā)明提供的點對點數(shù)據(jù)獲取方法、系統(tǒng)及服務器,在請求節(jié)點向源節(jié)點請求獲 取內(nèi)容數(shù)據(jù)的過程中,由服務器至少向源節(jié)點和請求節(jié)點發(fā)送一次攜帶更新密鑰的密鑰更 新消息,由源節(jié)點根據(jù)更新密鑰對接收密鑰更新消息之后的數(shù)據(jù)片斷進行加密并攜帶密鑰 更新標識,而請求節(jié)點根據(jù)密鑰更新標識采用相應的更新密鑰解密加密后的數(shù)據(jù)片斷,最 終獲取內(nèi)容數(shù)據(jù)。在本發(fā)明技術方案中,同一內(nèi)容數(shù)據(jù)的不同數(shù)據(jù)片斷可采用不同的密鑰 進行加密,保證了數(shù)據(jù)傳輸?shù)陌踩?;而不同密鑰是由服務器主動向請求節(jié)點和源節(jié)點下 發(fā)的,請求節(jié)點無需與服務器進行密鑰交互保證了數(shù)據(jù)傳輸效率;另外,在本發(fā)明技術方案 中源節(jié)點通過在發(fā)送的密文片斷中添加密鑰更新標識,使請求節(jié)點識別相應密鑰對密文片 斷進行解密,各節(jié)點無需存儲不同密鑰、數(shù)據(jù)片斷以及其他節(jié)點之間的對應關系,對節(jié)點的 處理能力要求較低,易于實施。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn) 有技術描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā) 明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根 據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實施例一提供的P2P數(shù)據(jù)獲取方法的流程圖;圖2為本發(fā)明實施例二提供的P2P數(shù)據(jù)獲取方法的流程圖;圖3為本發(fā)明實施例提供的服務器向請求節(jié)點和源節(jié)點發(fā)送第一密鑰更新消息 的方法流程圖;圖4為本發(fā)明實施例三提供的P2P數(shù)據(jù)獲取方法的流程圖;圖5為本發(fā)明實施例提供的服務器的一種結構示意圖;圖6為本發(fā)明實施例提供的服務器的又一種結構示意圖;圖7為本發(fā)明實施例提供的服務器的另一種結構示意圖;圖8為本發(fā)明實施例提供的P2P數(shù)據(jù)獲取系統(tǒng)的結構示意圖。
具體實施例方式為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結合本發(fā)明實施例 中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是 本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員 在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。圖1為本發(fā)明實施例一提供的P2P數(shù)據(jù)獲取方法的流程圖。如圖1所示,本實施 例的方法包括步驟11、源節(jié)點根據(jù)服務器下發(fā)的初始密鑰,加密內(nèi)容數(shù)據(jù)的第一數(shù)據(jù)片斷形成 第一密文片斷,并將第一密文片斷發(fā)送給請求節(jié)點;其中,內(nèi)容數(shù)據(jù)是請求節(jié)點請求獲取的信息。在P2P數(shù)據(jù)傳輸過程中,由源節(jié)點將 內(nèi)容數(shù)據(jù)劃分為多個數(shù)據(jù)片斷進行傳輸。在請求節(jié)點與源節(jié)點建立連接之前,服務器向源 節(jié)點和請求節(jié)點下發(fā)加密數(shù)據(jù)片斷用的密鑰(即初始密鑰),在本實施例中采用對稱密鑰 方式來加密數(shù)據(jù)片斷,因此,請求節(jié)點和源節(jié)點的密鑰相同。其中,第一數(shù)據(jù)片斷是指源節(jié) 點采用初始密鑰所加密的數(shù)據(jù)片斷,其可以包括一個數(shù)據(jù)片斷也可以包括多個數(shù)據(jù)片斷。步驟12、服務器至少向請求節(jié)點和源節(jié)點發(fā)送一次第一密鑰更新消息,所述第一 密鑰更新消息包括第一更新密鑰;該步驟具體在請求節(jié)點向源節(jié)點請求獲取內(nèi)容數(shù)據(jù)的過程中實施,即在源節(jié)點根 據(jù)初始密鑰加密第一數(shù)據(jù)片斷形成第一密文片斷并發(fā)送給請求節(jié)點之后實施。其中,第一 密鑰更新消息是指服務器在請求節(jié)點向源節(jié)點請求獲取內(nèi)容數(shù)據(jù)的過程中下發(fā)的密鑰更 新消息,主要用于使源節(jié)點對同一內(nèi)容數(shù)據(jù)的不同數(shù)據(jù)片斷采用不同密鑰加密,提高數(shù)據(jù) 片斷傳輸?shù)陌踩?。具體的,服務器根據(jù)一定的策略通過密鑰更新消息向請求節(jié)點和源節(jié) 點發(fā)送更新密鑰;其中服務器所依據(jù)的策略可以是定時策略,即每隔一定實現(xiàn)就下發(fā)一次 密鑰更新消息;也可以是次數(shù)策略,即針對每個內(nèi)容數(shù)據(jù)設定下發(fā)密鑰更新消息的總次數(shù), 但不限定每次發(fā)送的時間;還可以是針對不同內(nèi)容數(shù)據(jù)而特殊設定的下發(fā)策略,對此本實施例不做限定。步驟13、源節(jié)點根據(jù)第一更新密鑰加密內(nèi)容數(shù)據(jù)的第二數(shù)據(jù)片斷,并在第二數(shù)據(jù) 片斷中添加密鑰更新標識,形成第二密文片斷,并向請求節(jié)點發(fā)送第二密文片斷;其中,當源節(jié)點接收到服務器下發(fā)的密鑰更新消息后,解析獲取其中的更新密鑰; 根據(jù)預先約定的規(guī)則,源節(jié)點或者需要用更新密鑰對后續(xù)數(shù)據(jù)片斷進行加密,此時,源節(jié)點 采用更新密鑰對接收密鑰更新消息時刻之后要發(fā)送的數(shù)據(jù)片斷進行加密,同時在數(shù)據(jù)片斷 中添加密鑰更新標識,形成密文片斷,并將密文片斷發(fā)送給請求節(jié)點。其中,密鑰更新標識 用于使請求節(jié)點獲知從哪個密文片斷開始,需要采用更新密鑰對密文片斷進行解密,來獲 取數(shù)據(jù)片斷;且在服務器下發(fā)多次密鑰更新消息的情況下,該密鑰更新標識還用于使請求 節(jié)點獲知使用哪個更新密鑰對相應密文片斷進行解密,即該密鑰更新標識同時標識采用更 新密鑰開始加密的數(shù)據(jù)片斷、采用更新密鑰解密的密文片斷以及所采用的更新密鑰之間的 映射關系。其中,第二數(shù)據(jù)片斷是指采用更新密鑰加密的數(shù)據(jù)片斷,其可以包括一個數(shù)據(jù)片 斷也可以包括多個數(shù)據(jù)片斷;另外,對于服務器下發(fā)多次密鑰更新消息的情況,當下一次密 鑰更新消息到來時,當前密鑰更新消息中的更新密鑰可視為初始密鑰,因此,采用下一次密 鑰更新消息中的更新密鑰加密的數(shù)據(jù)片斷也是第二數(shù)據(jù)片斷,即兩次密鑰更新消息之間的 數(shù)據(jù)片斷均屬于第二數(shù)據(jù)片斷,根據(jù)第二數(shù)據(jù)片斷形成的密文片斷即為第二密文片斷。步驟14、請求節(jié)點接收第二密文片斷,采用密鑰更新標識對應的第一更新密鑰解 密第二密文片斷,以獲取內(nèi)容數(shù)據(jù)。請求節(jié)點接收到第二密文片斷之后,根據(jù)第二密文片斷中攜帶的密鑰更新標識獲 取相應的更新密鑰進行解密,獲取第二數(shù)據(jù)片斷;同時,對于第一密文片斷,請求節(jié)點會采 用初始密鑰進行解密,獲取第一數(shù)據(jù)片斷,并最終獲取整個內(nèi)容數(shù)據(jù)。其中,在本實施例中,請求節(jié)點可以在每接收到一個密文片斷(包括第一密文片 斷和第二密文片斷)時,就采用相應的密鑰進行解密獲取數(shù)據(jù)片斷,并最終獲取整個內(nèi)容 數(shù)據(jù);請求節(jié)點也可以在接收到所有密文片斷之后,對攜帶密鑰更新標識的密文片斷根據(jù) 密鑰更新標識采用相應的更新密鑰進行解密,對未攜帶密鑰更新標識的密文片斷采用初始 密鑰進行解密,并最終獲取整個內(nèi)容數(shù)據(jù)。本實施例的P2P數(shù)據(jù)獲取方法,在請求節(jié)點向源節(jié)點請求獲取內(nèi)容數(shù)據(jù)的過程 中,由服務器至少向源節(jié)點和請求節(jié)點發(fā)送一次攜帶更新密鑰的密鑰更新消息,由源節(jié)點 根據(jù)更新密鑰對接收密鑰更新消息之后的數(shù)據(jù)片斷進行加密并攜帶密鑰更新標識,而請求 節(jié)點根據(jù)密鑰更新標識采用相應的更新密鑰解密加密后的數(shù)據(jù)片斷,最終獲取內(nèi)容數(shù)據(jù)。 在本實施例中,同一內(nèi)容數(shù)據(jù)的不同數(shù)據(jù)片斷可采用不同的密鑰進行加密,保證了數(shù)據(jù)傳 輸?shù)陌踩?;而不同密鑰是由服務器主動向請求節(jié)點和源節(jié)點下發(fā)的,請求節(jié)點無需與服 務器進行密鑰交互保證了數(shù)據(jù)傳輸效率;另外,在本實施例中,源節(jié)點通過在發(fā)送的密文 片斷中添加密鑰更新標識,使請求節(jié)點識別相應密鑰對密文片斷進行解密,各節(jié)點無需存 儲不同密鑰、數(shù)據(jù)片斷以及其他節(jié)點之間的對應關系,對節(jié)點的處理能力要求較低,易于實 施。 其中,在上述實施例中,為了進一步提高數(shù)據(jù)傳輸?shù)陌踩?,服務器可以提高向?求節(jié)點和源節(jié)點發(fā)送密鑰更新消息的頻率,最佳可以達到每個數(shù)據(jù)片斷均采用不同的密鑰
7來加密。圖2為本發(fā)明實施例二提供的P2P數(shù)據(jù)獲取方法的流程圖。本實施例基于實施例 一實現(xiàn),如圖2所示,本實施例的方法包括步驟21、請求節(jié)點向服務器發(fā)送節(jié)點列表請求,所述節(jié)點列表請求包括內(nèi)容數(shù)據(jù) fn息;當請求節(jié)點有需要獲取的內(nèi)容數(shù)據(jù)時,首先向服務器發(fā)送節(jié)點列表請求,以獲取 可提供服務的、有資源的節(jié)點信息。其中,內(nèi)容數(shù)據(jù)信息可以為內(nèi)容數(shù)據(jù)的名稱、鏈接地址 數(shù)據(jù)或部分內(nèi)容等。其中,內(nèi)容數(shù)據(jù)可以是一部電影、一首音樂、一篇文章等,相應的內(nèi)容數(shù) 據(jù)信息可以為影片名、歌曲名、文章名稱,還可以是影片導演、歌手名字、作者姓名等。服務 器根據(jù)內(nèi)容數(shù)據(jù)信息為請求節(jié)點獲取能為請求節(jié)點提供服務的節(jié)點列表。步驟22、服務器向請求節(jié)點返回節(jié)點列表,所述節(jié)點列表中包括內(nèi)容數(shù)據(jù)信息對 應的源節(jié)點信息;當服務器獲取到可為請求節(jié)點提供服務器的源節(jié)點時,通過節(jié)點列表的形式 向請求節(jié)點返回各源節(jié)點的信息;其中,源節(jié)點的信息可以是源節(jié)點的統(tǒng)一資源定位 符(Uniform/Universal Resource Locator ;簡稱為URL)地址或源節(jié)點的網(wǎng)際協(xié)議 (Internet Protocol ;簡稱為=IP)地址等。步驟23、服務器向請求節(jié)點和源節(jié)點發(fā)送初始密鑰;當服務器向請求節(jié)點返回節(jié)點列表之后,向請求節(jié)點和源節(jié)點下發(fā)初始密鑰,以 使源節(jié)點根據(jù)初始密鑰加密第一數(shù)據(jù)片斷,并使請求節(jié)點根據(jù)初始密鑰解密接收到的第一 密文片斷。步驟M、請求節(jié)點根據(jù)節(jié)點列表向源節(jié)點發(fā)送內(nèi)容數(shù)據(jù)獲取請求;其中,請求節(jié)點可能同時與多個源節(jié)點建立連接,分別獲取不同數(shù)據(jù)片斷。步驟25、源節(jié)點根據(jù)服務器下發(fā)的初始密鑰,加密內(nèi)容數(shù)據(jù)的第一數(shù)據(jù)片斷形成 第一密文片斷,并將第一密文片斷發(fā)送給請求節(jié)點;步驟沈、服務器至少向請求節(jié)點和源節(jié)點發(fā)送一次第一密鑰更新消息,所述第一 密鑰更新消息包括第一更新密鑰;步驟27、源節(jié)點根據(jù)第一更新密鑰加密內(nèi)容數(shù)據(jù)的第二數(shù)據(jù)片段,并在第二數(shù)據(jù) 片段中添加密鑰更新標識,形成第二密文片段,并向請求節(jié)點發(fā)送第二密文片段;步驟觀、請求節(jié)點接收第二密文片斷,采用密鑰更新標識對應的第一更新密鑰解 密第二密文片斷,以獲取內(nèi)容數(shù)據(jù)。其中步驟25-步驟洲可參見實施例一的描述,在此不再贅述。另外,請求節(jié)點可 以根據(jù)數(shù)據(jù)片斷中的序號,監(jiān)測內(nèi)容數(shù)據(jù)的獲取狀況;當監(jiān)測到內(nèi)容數(shù)據(jù)的獲取結束后,向 服務器發(fā)送通告消息,以告知服務器該內(nèi)容數(shù)據(jù)的獲取完成。服務器根據(jù)該通告消息可以 停止向請求節(jié)點和源節(jié)點發(fā)送密鑰更新消息,同時還可以將分配給該內(nèi)容數(shù)據(jù)的初始密鑰 或更新密鑰等收回。上述操作為一種可選操作,本實施例以請求節(jié)點獲取內(nèi)容數(shù)據(jù)為重點。本實施例的P2P數(shù)據(jù)獲取方法,請求節(jié)點向服務器請求節(jié)點列表,服務器在向請 求節(jié)點返回節(jié)點列表后,向請求節(jié)點和源節(jié)點發(fā)送初始密鑰;請求節(jié)點根據(jù)節(jié)點列表向源 節(jié)點發(fā)送內(nèi)容數(shù)據(jù)獲取請求,源節(jié)點根據(jù)初始密鑰加密數(shù)據(jù)片斷并發(fā)送給請求節(jié)點,在之 后服務器通過發(fā)送多次密鑰更新消息使源節(jié)點和請求節(jié)點采用更新密鑰對后續(xù)數(shù)據(jù)片斷進行加密和解密處理,實現(xiàn)對同一內(nèi)容數(shù)據(jù)的不同數(shù)據(jù)片斷采用不同密鑰加密后傳輸,提 高了數(shù)據(jù)傳輸?shù)陌踩裕煌瑫r,不同密鑰是由服務器主動向請求節(jié)點和源節(jié)點下發(fā)的,請求 節(jié)點無需與服務器進行密鑰交互保證了數(shù)據(jù)傳輸效率;另外,在本實施例中,源節(jié)點通過在 發(fā)送的密文片斷中添加密鑰更新標識,使請求節(jié)點識別相應密鑰對密文片斷進行解密,各 節(jié)點無需存儲不同密鑰、數(shù)據(jù)片斷以及其他節(jié)點之間的對應關系,對節(jié)點的處理能力要求 較低,易于實施。圖3為本發(fā)明實施例提供的服務器向請求節(jié)點和源節(jié)點發(fā)送第一密鑰更新消息 的方法流程圖。本實施例基于上述實施例實現(xiàn),如圖3所示,本實施例發(fā)送第一更新消息的 方法包括步驟31、服務器根據(jù)內(nèi)容數(shù)據(jù)信息,判斷密鑰池中是否有可用密鑰;如判斷結果 為有,則執(zhí)行步驟32,反之,執(zhí)行步驟33。其中,在服務器上預先設有密鑰池,主要用于存儲密鑰并對密鑰進行管理,其中密 鑰包括初始密鑰和各種更新密鑰。可用密鑰主要是指未被使用的密鑰。密鑰池中的密鑰在 其生存周期之內(nèi)可被循環(huán)使用。步驟32、服務器從密鑰池中選擇一個可用密鑰作為第一更新密鑰,并執(zhí)行步驟 34 ;步驟33、服務器根據(jù)內(nèi)容數(shù)據(jù)信息,生成第一更新密鑰,并將第一更新密鑰存儲到 密鑰池中,并執(zhí)行步驟34;當密鑰池中沒有可用密鑰時,服務器可為當前內(nèi)容數(shù)據(jù)生成一個新密鑰,作為其 第一更新密鑰。其中,服務器可以根據(jù)預設規(guī)則生成密鑰,具體可參見現(xiàn)有技術,在本實施 例中并不做限定。步驟34、服務器根據(jù)第一更新密鑰,生成第一密鑰更新消息,并執(zhí)行步驟35 ;其中,服務器可以將第一更新密鑰作為數(shù)據(jù)內(nèi)容,并封裝請求節(jié)點、源節(jié)點的地址 信息后生成第一密鑰更新消息,但并不限于此。步驟35、服務器將第一密鑰更新消息發(fā)送給請求節(jié)點和源節(jié)點。本實施例提供的發(fā)送第一密鑰更新消息的方法,服務器通過密鑰池對其密鑰進行 管理,首先從可用密鑰中選擇第一更新密鑰,若不存在時根據(jù)密鑰生成規(guī)則生成新的密鑰 作為第一更新密鑰,并將第一更新密鑰封裝為第一密鑰更新消息,下發(fā)給請求節(jié)點和源節(jié) 點,該方式簡單易于實現(xiàn),且資源消耗較少。另外,在本實施例中,服務器也可以不執(zhí)行判斷密鑰池中是否存在可用密鑰的操 作,而直接根據(jù)內(nèi)容數(shù)據(jù)信息生成第一更新密鑰,并將第一更新密鑰存儲到密鑰池中,該方 式更加簡單和便于實施,只是對密鑰池的容量相對要求較高?;谏鲜鰧嵤├?,為了便于對密鑰進行管理以及提高密鑰的保密性,服務器為每 個密鑰設置一個生存周期,當生存周期結束時,該密鑰將被刪除。圖4為本發(fā)明實施例三提 供的P2P數(shù)據(jù)獲取方法的流程圖。本實施例基于上述實施例實現(xiàn),如圖4所示,本實施例的 方法還包括步驟41、服務器查詢密鑰池;具體的,服務器可以周期性查詢密鑰池,也可以實時查詢密鑰池,其中為減輕服務 器的負擔,優(yōu)選周期性輪循密鑰池中的各個密鑰。其中,服務器可以在每個密鑰生成時為其
9設定一計時器,記錄每個密鑰的存在時間。步驟42、服務器刪除密鑰池中存在時間大于預設生存周期的密鑰;服務器通過判斷計時器記錄的存在時間大于預設生存周期時,將該密鑰刪除,通 過這種方式可以提高密鑰的保密性。步驟43、服務器根據(jù)被刪除的密鑰,生成第二更新密鑰,以更新密鑰池。服務器為被刪除的密鑰生成新的密鑰,即第二更新密鑰,來替代被刪除的密鑰,并 將第二更新密鑰存儲到密鑰池中,通過該方式可以保證密鑰池中存在一定數(shù)量的密鑰,以 便于向有獲取數(shù)據(jù)內(nèi)容請求的節(jié)點提供密鑰(例如初始密鑰或更新密鑰)。其中,被刪除的密鑰可能是可用密鑰,即未被使用的密鑰,也可能是正在被使用的 密鑰。為了保證正在使用該被刪除的密鑰的節(jié)點能夠正常通信,本實施例提供一種實施方 式,即服務器通過第二密鑰更新消息將第二更新密鑰發(fā)送給正在使用被刪除的密鑰的源節(jié) 點和請求節(jié)點,同時達到更新上述請求節(jié)點和源節(jié)點的密鑰的目的。其中,第二更新密鑰是 在服務器更新其密鑰池中的密鑰時,為保證被刪除的密鑰不影響P2P系統(tǒng)的運行而生成的 用來替代被刪除的密鑰的。本實施例的P2P數(shù)據(jù)獲取方法,通過預設生存周期,由服務器對其密鑰池中的密 鑰進行更新,提高了密鑰的保密性,進而提高了基于密鑰池中的密鑰進行傳輸?shù)臄?shù)據(jù)的安 全性。在此需要說明,服務器根據(jù)預設生存周期更新密鑰的方案,可以與上述各實施例 相結合,且并不限定其先后順序,即服務器根據(jù)預設生存周期更新密鑰的方案可與其他實 施例的方案并行實施。圖5為本發(fā)明實施例提供的服務器的一種結構示意圖。如圖5所示,本實施例的 服務器包括第一發(fā)送模塊51和第二發(fā)送模塊52。其中,第一發(fā)送模塊51,與源節(jié)點和請求節(jié)點連接,用于向源節(jié)點和請求節(jié)點發(fā)送 初始密鑰,以使源節(jié)點根據(jù)初始密鑰加密內(nèi)容數(shù)據(jù)的第一數(shù)據(jù)片斷形成第一密文片斷,并 使請求節(jié)點根據(jù)初始密鑰解密第一密文片斷;第二發(fā)送模塊52,與第一發(fā)送模塊51、源節(jié) 點和請求節(jié)點連接,用于在第一發(fā)送模塊51發(fā)送初始密鑰后,至少向請求節(jié)點和源節(jié)點發(fā) 送一次第一密鑰更新消息,所述第一密鑰更新消息包括第一更新密鑰,以使源節(jié)點根據(jù)第 一更新密鑰加密內(nèi)容數(shù)據(jù)的第二數(shù)據(jù)片斷形成第二密文片斷,并使請求節(jié)點根據(jù)第一更新 密鑰解密第二密文片斷,以獲取內(nèi)容數(shù)據(jù)。本實施例的服務器,可用于執(zhí)行本發(fā)明方式實施例提供的P2P數(shù)據(jù)獲取方法的流 程,具體通過第一發(fā)送模塊和第二發(fā)送模塊,在請求節(jié)點向源節(jié)點請求獲取內(nèi)容數(shù)據(jù)的過 程中至少發(fā)送一次密鑰更新消息,以使源節(jié)點根據(jù)密鑰更新消息中的更新密鑰對接收密鑰 更新消息之后的數(shù)據(jù)片斷進行加密,以及使請求節(jié)點根據(jù)更新密鑰解密后續(xù)密文片斷,實 現(xiàn)了對同一內(nèi)容數(shù)據(jù)的不同數(shù)據(jù)片斷采用不同的密鑰進行加密,提高了數(shù)據(jù)傳輸?shù)陌踩?性;同時,不同密鑰(主要指更新密鑰)由服務器通過其第二發(fā)送模塊主動向請求節(jié)點和源 節(jié)點發(fā)送,請求節(jié)點無需與服務器進行密鑰交互保證了數(shù)據(jù)傳輸效率。圖6為本發(fā)明實施例提供的服務器的又一種結構示意圖。本實施例基于上述實施 例實現(xiàn),如圖6所示,本實施例的服務器還包括接收模塊61和返回模塊62。其中,接收模塊61,與請求節(jié)點連接,用于接收請求節(jié)點發(fā)送的節(jié)點列表請求,所述節(jié)點列表請求包括內(nèi)容數(shù)據(jù)信息;返回模塊62,與接收模塊61和請求節(jié)點連接,用于根 據(jù)內(nèi)容數(shù)據(jù)信息獲取源節(jié)點信息,并向請求節(jié)點返回節(jié)點列表,所述節(jié)點列表包括內(nèi)容數(shù) 據(jù)信息對應的源節(jié)點信息。上述各功能模塊,可用于執(zhí)行本發(fā)明上述實施例提供的P2P數(shù)據(jù)獲取方法的流 程,其具體工作原理不再贅述。進一步,第二發(fā)送模塊52包括處理單元、生成單元和發(fā)送單元。其中,處理單元, 用于根據(jù)內(nèi)容數(shù)據(jù)信息,從密鑰池中選擇第一更新密鑰,或者根據(jù)內(nèi)容數(shù)據(jù)信息,生成第一 更新密鑰,并存儲到密鑰池中;生成單元,用于根據(jù)第一更新密鑰,生成第一密鑰更新消息; 發(fā)送單元,用于將第一密鑰更新消息發(fā)送給請求節(jié)點和源節(jié)點。本實施例第二發(fā)送模塊的各功能單元可用于執(zhí)行本發(fā)明上述方法實施例提供的 發(fā)送第一密鑰更新消息的流程,其具體工作原理請參見方法實施例的描述,在此不再贅述。圖7為本發(fā)明實施例提供的服務器的另一種結構示意圖。本實施例可基于上述 實施例實現(xiàn),如圖7所示,本實施例的服務器還包括查詢模塊71、刪除模塊72和生成模塊 73。其中,查詢模塊71,與密鑰池連接,用于查詢密鑰池;刪除模塊72,與密鑰池連接, 用于刪除密鑰池中存在時間大于預設生存周期的密鑰;生成模塊73,與密鑰池和刪除模塊 72連接,用于根據(jù)被刪除的密鑰,生成第二更新密鑰,以更新密鑰池。其中,上述功能模塊可用于執(zhí)行本發(fā)明方法實施例提供的P2P數(shù)據(jù)獲取方法的流 程,主要用于對密鑰池進行更新,其具體工作原理詳見方法實施例的描述,在此不再贅述。 通過上述模塊,本實施例的服務器可以對密鑰池中的密鑰進行更新,將存在一定時間的密 鑰刪除,提高了密鑰的保密性,進而提高了基于密鑰池中的密鑰進行數(shù)據(jù)傳輸時的安全性。圖8為本發(fā)明實施例提供的P2P數(shù)據(jù)獲取系統(tǒng)的結構示意圖。如圖8所示,本實 施例的系統(tǒng)包括源節(jié)點81、請求節(jié)點82和服務器83。其中,源節(jié)點81分別與服務器83 和請求節(jié)點82連接,請求節(jié)點82也與服務器83連接。其中,本實施例中的服務器83采用本發(fā)明上述實施例提供的服務器,其結構可參 見圖5-圖7所示,其工作原理可參見上述方法實施例的描述,在此不再贅述?;诖耍緦?施例系統(tǒng)的主要工作原理如下請求節(jié)點82向服務器83發(fā)送的節(jié)點列表請求,所述節(jié)點列表請求包括內(nèi)容數(shù)據(jù) 信息;服務器83根據(jù)內(nèi)容數(shù)據(jù)信息獲取可為請求節(jié)點82提供服務的源節(jié)點信息,并向請求 節(jié)點82返回節(jié)點列表,所述節(jié)點列表包括所述內(nèi)容數(shù)據(jù)信息對應的源節(jié)點信息;請求節(jié)點 82接收服務器83返回的節(jié)點列表。服務器83在向請求節(jié)點82返回節(jié)點列表之后,向源節(jié)點81和請求節(jié)點82發(fā)送 初始密鑰;源節(jié)點81和請求節(jié)點82接收服務器83發(fā)送的初始密鑰;源節(jié)點81根據(jù)初始密 鑰加密內(nèi)容數(shù)據(jù)的第一數(shù)據(jù)片斷形成所述第一密文片斷,并發(fā)送給請求節(jié)點82 ;請求節(jié)點 82接收源節(jié)點81發(fā)送的第一密文片斷,并根據(jù)初始密鑰解密第一密文片斷。服務器83在發(fā)送初始密鑰之后,向源節(jié)點81和請求節(jié)點82發(fā)送第一密鑰更新消 息,所述第一密鑰更新消息包括第一更新密鑰;源節(jié)點81和請求節(jié)點82接收服務器83發(fā) 送的第一密鑰更新消息;源節(jié)點81根據(jù)第一更新密鑰加密內(nèi)容數(shù)據(jù)的第二數(shù)據(jù)片斷,并在 第二數(shù)據(jù)片斷中添加密鑰更新標識形成第二密文片斷,并將第二密文片斷發(fā)送給請求節(jié)點82 ;請求節(jié)點82接收源節(jié)點81發(fā)送的第二密文片斷,并根據(jù)第一更新密鑰解密第二密文片 斷,以獲取內(nèi)容數(shù)據(jù)。本實施例提供的P2P數(shù)據(jù)獲取系統(tǒng),可用于執(zhí)行本發(fā)明上述實施例提供的P2P數(shù) 據(jù)獲取方法的流程,具體在請求節(jié)點向源節(jié)點請求獲取內(nèi)容數(shù)據(jù)的過程中,由服務器至少 向源節(jié)點和請求節(jié)點發(fā)送一次攜帶更新密鑰的密鑰更新消息,由源節(jié)點根據(jù)更新密鑰對接 收密鑰更新消息之后的數(shù)據(jù)片斷進行加密并攜帶密鑰更新標識,而請求節(jié)點根據(jù)密鑰更新 標識采用相應的更新密鑰解密加密后的數(shù)據(jù)片斷,最終獲取內(nèi)容數(shù)據(jù)。在本實施例中,同一 內(nèi)容數(shù)據(jù)的不同數(shù)據(jù)片斷可采用不同的密鑰進行加密,保證了數(shù)據(jù)傳輸?shù)陌踩?;而不?密鑰是由服務器主動向請求節(jié)點和源節(jié)點下發(fā)的,請求節(jié)點無需與服務器進行密鑰交互保 證了數(shù)據(jù)傳輸效率;另外,在本實施例中源節(jié)點通過在發(fā)送的密文片斷中添加密鑰更新標 識,使請求節(jié)點識別相應密鑰對密文片斷進行解密,各節(jié)點無需存儲不同密鑰、數(shù)據(jù)片斷以 及其他節(jié)點之間的對應關系,對節(jié)點的處理能力要求較低,易于實施。本領域普通技術人員可以理解實現(xiàn)上述方法實施例的全部或部分步驟可以通過 程序指令相關的硬件來完成,前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中,該程序 在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質(zhì)包括R0M、RAM、磁碟或者 光盤等各種可以存儲程序代碼的介質(zhì)。最后應說明的是以上實施例僅用以說明本發(fā)明的技術方案,而非對其限制;盡 管參照前述實施例對本發(fā)明進行了詳細的說明,本領域的普通技術人員應當理解其依然 可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替 換;而這些修改或者替換,并不使相應技術方案的本質(zhì)脫離本發(fā)明各實施例技術方案的精 神和范圍。
1權利要求
1.一種點對點數(shù)據(jù)獲取方法,其特征在于,包括源節(jié)點根據(jù)服務器下發(fā)的初始密鑰,加密內(nèi)容數(shù)據(jù)的第一數(shù)據(jù)片斷形成第一密文片 斷,并將所述第一密文片斷發(fā)送給請求節(jié)點;所述服務器至少向所述請求節(jié)點和所述源節(jié)點發(fā)送一次第一密鑰更新消息,所述第一 密鑰更新消息包括第一更新密鑰;所述源節(jié)點根據(jù)所述第一更新密鑰加密所述內(nèi)容數(shù)據(jù)的第二數(shù)據(jù)片斷,并在所述第二 數(shù)據(jù)片斷中添加密鑰更新標識,形成第二密文片斷,并向所述請求節(jié)點發(fā)送所述第二密文 片斷;所述請求節(jié)點接收所述第二密文片斷,采用所述密鑰更新標識對應的第一更新密鑰解 密所述第二密文片斷,以獲取所述內(nèi)容數(shù)據(jù)。
2.根據(jù)權利要求1所述的點對點數(shù)據(jù)獲取方法,其特征在于,在源節(jié)點根據(jù)服務器下 發(fā)的初始密鑰,加密內(nèi)容數(shù)據(jù)的第一數(shù)據(jù)片斷形成第一密文片斷之前還包括所述請求節(jié)點向所述服務器發(fā)送節(jié)點列表請求,所述節(jié)點列表請求包括內(nèi)容數(shù)據(jù)信息;所述服務器向所述請求節(jié)點返回節(jié)點列表,所述節(jié)點列表中包括所述內(nèi)容數(shù)據(jù)信息對 應的源節(jié)點信息;所述服務器向所述請求節(jié)點和所述源節(jié)點發(fā)送所述初始密鑰。
3.根據(jù)權利要求2所述的點對點數(shù)據(jù)獲取方法,其特征在于,所述服務器至少向所述 請求節(jié)點和所述源節(jié)點發(fā)送一次第一密鑰更新消息包括所述服務器根據(jù)所述內(nèi)容數(shù)據(jù)信息,從密鑰池中選擇所述第一更新密鑰,或者根據(jù)所 述內(nèi)容數(shù)據(jù)信息,生成所述第一更新密鑰,并將所述第一更新密鑰存儲到所述密鑰池中; 所述服務器根據(jù)所述第一更新密鑰,生成所述第一密鑰更新消息; 所述服務器將所述第一密鑰更新消息發(fā)送給所述請求節(jié)點和所述源節(jié)點。
4.根據(jù)權利要求3所述的點對點數(shù)據(jù)獲取方法,其特征在于,還包括 所述服務器查詢所述密鑰池;所述服務器刪除所述密鑰池中存在時間大于預設生存周期的密鑰; 所述服務器根據(jù)被刪除的密鑰,生成第二更新密鑰,以更新所述密鑰池。
5.一種服務器,其特征在于,包括第一發(fā)送模塊,用于向源節(jié)點和請求節(jié)點發(fā)送初始密鑰,以使所述源節(jié)點根據(jù)所述初 始密鑰加密內(nèi)容數(shù)據(jù)的第一數(shù)據(jù)片斷形成第一密文片斷,并使所述請求節(jié)點根據(jù)所述初始 密鑰解密所述第一密文片斷;第二發(fā)送模塊,用于在所述第一發(fā)送模塊發(fā)送所述初始密鑰后,至少向所述請求節(jié)點 和所述源節(jié)點發(fā)送一次第一密鑰更新消息,所述第一密鑰更新消息包括第一更新密鑰,以 使所述源節(jié)點根據(jù)所述第一更新密鑰加密所述內(nèi)容數(shù)據(jù)的第二數(shù)據(jù)片斷形成第二密文片 斷,并使所述請求節(jié)點根據(jù)所述第一更新密鑰解密所述第二密文片斷,以獲取所述內(nèi)容數(shù) 據(jù)。
6.根據(jù)權利要求5所述的服務器,其特征在于,還包括接收模塊,用于接收所述請求節(jié)點發(fā)送的節(jié)點列表請求,所述節(jié)點列表請求包括內(nèi)容 數(shù)據(jù)信息;返回模塊,用于向所述請求節(jié)點返回節(jié)點列表,所述節(jié)點列表包括所述內(nèi)容數(shù)據(jù)信息 對應的源節(jié)點信息。
7.根據(jù)權利要求6所述的服務器,其特征在于,所述第二發(fā)送模塊包括處理單元,用于根據(jù)所述內(nèi)容數(shù)據(jù)信息,從密鑰池中選擇所述第一更新密鑰,或者根據(jù) 所述內(nèi)容數(shù)據(jù)信息,生成所述第一更新密鑰,并存儲到所述密鑰池中;生成單元,用于根據(jù)所述第一更新密鑰,生成所述第一密鑰更新消息;發(fā)送單元,用于將所述第一密鑰更新消息發(fā)送給所述請求節(jié)點和所述源節(jié)點。
8.根據(jù)權利要求7所述的服務器,其特征在于,還包括查詢模塊,用于查詢所述密鑰池;刪除模塊,用于刪除所述密鑰池中存在時間大于預設生存周期的密鑰;生成模塊,用于根據(jù)被刪除的密鑰,生成第二更新密鑰,以更新所述密鑰池。
9.一種包括如權利要求5-8任一項所述的服務器的點對點數(shù)據(jù)獲取系統(tǒng),其特征在 于,還包括源節(jié)點和請求節(jié)點;所述請求節(jié)點,用于接收所述服務器發(fā)送的第一密鑰更新消息,所述第一密鑰更新消 息包括第一更新密鑰;并用于接收所述源節(jié)點發(fā)送的第一密文片斷和第二密文片斷,并根 據(jù)所述第一更新密鑰解密所述第二密文片斷,以獲取內(nèi)容數(shù)據(jù);所述源節(jié)點,用于接收所述服務器發(fā)送的所述初始密鑰和所述第一密鑰更新消息,根 據(jù)所述初始密鑰加密所述內(nèi)容數(shù)據(jù)的第一數(shù)據(jù)片斷形成所述第一密文片斷和根據(jù)所述第 一更新密鑰加密所述內(nèi)容數(shù)據(jù)的第二數(shù)據(jù)片斷,并在所述第二數(shù)據(jù)片斷中添加密鑰更新標 識形成所述第二密文片斷,并將所述第一密文片斷和所述第二密文片斷發(fā)送給所述請求節(jié) 點ο
10.根據(jù)權利要求9所述的點對點數(shù)據(jù)獲取系統(tǒng),其特征在于,所述請求節(jié)點還用于向 所述服務器發(fā)送節(jié)點列表請求,所述節(jié)點列表請求包括內(nèi)容數(shù)據(jù)信息,并接收所述服務器 返回的節(jié)點列表,所述節(jié)點列表包括所述內(nèi)容數(shù)據(jù)信息對應的源節(jié)點信息;以及用于接收 所述服務器發(fā)送的所述初始密鑰,并根據(jù)所述初始密鑰解密所述第一密文片斷,以獲取所 述內(nèi)容數(shù)據(jù)。
全文摘要
本發(fā)明提供一種點對點數(shù)據(jù)獲取方法、系統(tǒng)及服務器,方法包括源節(jié)點根據(jù)服務器下發(fā)的初始密鑰,加密第一數(shù)據(jù)片斷形成第一密文片斷,并發(fā)送給請求節(jié)點;服務器至少向請求節(jié)點和源節(jié)點發(fā)送一次第一密鑰更新消息,第一密鑰更新消息包括第一更新密鑰;源節(jié)點根據(jù)第一更新密鑰加密第二數(shù)據(jù)片斷,并在第二數(shù)據(jù)片斷中添加密鑰更新標識,形成第二密文片斷,并發(fā)送給請求節(jié)點;請求節(jié)點接收第二密文片斷,采用密鑰更新標識對應的第一更新密鑰解密第二密文片斷,以獲取內(nèi)容數(shù)據(jù)。本發(fā)明技術方案,不僅可以保證傳輸數(shù)據(jù)的安全性,還可以保證數(shù)據(jù)傳輸效率,且對節(jié)點處理能力要求較低,易于實施。
文檔編號H04L29/08GK102065135SQ201010590870
公開日2011年5月18日 申請日期2010年12月15日 優(yōu)先權日2010年12月15日
發(fā)明者劉紅旗, 劉辛炎, 張倫泳, 王子奇, 馬少紅 申請人:中國聯(lián)合網(wǎng)絡通信集團有限公司