TW201415274A - 遠端動態資料的處理與驗證方法、系統,以及電腦可讀記錄媒體 - Google Patents
遠端動態資料的處理與驗證方法、系統,以及電腦可讀記錄媒體 Download PDFInfo
- Publication number
- TW201415274A TW201415274A TW101137778A TW101137778A TW201415274A TW 201415274 A TW201415274 A TW 201415274A TW 101137778 A TW101137778 A TW 101137778A TW 101137778 A TW101137778 A TW 101137778A TW 201415274 A TW201415274 A TW 201415274A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- node
- value
- leaf
- tree structure
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Bioethics (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一種遠端動態資料的處理與驗證方法。首先提供階層數為n的基數樹狀結構,其包括根節點、數個中間節點與數個葉節點。取得並記錄n個初始數值以表示空的基數樹狀結構,其中屬於相同階層的節點被指派同一初始數值。每次進行資料處理操作時,在所有葉節點中決定第一葉節點,計算並記錄從第一葉節點到根節點之最短路徑上各節點的數值。在進行特定資料的查驗時,在所有葉節點中找出對應特定資料的第二葉節點,取得從第二葉節點到根節點之最短路徑上各節點的兄弟節點,根據用於驗證根節點的數位簽章、上述兄弟節點的數值與特定資料來產生查驗結果。
Description
本發明是有關於一種遠端資料的處理及查驗方法,且特別是有關於一種儲存在遠端之動態資料的處理及查驗方法、實現此方法的系統,以及電腦可讀記錄媒體。
隨著雲端運算(Cloud Computing)的興起,各式雲端服務也越來越受到重視。以雲端儲存服務為例,其是透過網際網路整合多台伺服器以供個人或企業用戶將資料存放於上述儲存環境中。雲端儲存服務確保用戶在有網路的環境下便能輕易地取得資料,同時也可作為資料備份以及資料分享之用途。
一般而言,雲端儲存服務的優劣是取決於資料的安全性與完整性。對於雲端儲存服務的用戶來說,多半希望能快速且輕便地驗證存放於遠端的資料是否全部被妥善保存,以及其中某些特定的重要資料是否未遭受破壞。倘若用戶存放於遠端的資料是屬於不再更動的靜態(static)資料,目前已有適於儲存靜態資料且便於驗證其完整性的資料結構被廣泛地應用在雲端儲存服務之中。然而,對於用戶經常需要進行修改或刪減的動態(dynamic)資料來說,若要採用原用以儲存靜態資料的資料結構來儲存之,則由於資料量難以維持不變,且需要頻繁地重建資料結構,因此需要相當高的計算成本。
有鑑於此,本發明提供一種遠端動態資料的處理與驗證方法、系統,以及電腦可讀記錄媒體,用以針對儲存在遠端的動態資料提供穩定且有效率的查驗機制,其能有效地判斷遠端動態資料的完整性。
本發明提出一種遠端動態資料的處理與驗證方法,此方法包括提供用於資料儲存的基數樹狀結構,此基數樹狀結構包括一根節點、數個中間節點與數個葉節點,且基數樹狀結構的階層數為n,n為正整數。此方法還包括取得並記錄n個初始數值以表示尚未儲存資料的基數樹狀結構,而在尚未儲存資料的基數樹狀結構中,屬於相同階層的節點被指派相同的初始數值。此方法更包括每當對基數樹狀結構進行資料處理操作時,在所有的葉節點中決定出第一葉節點,重新計算從第一葉節點到根節點之最短路徑上每一節點的數值,並記錄重新計算所得到的數值。此方法還包括在對基數樹狀結構進行特定資料的查驗時,在所有的葉節點中找出與特定資料相對應的至少一第二葉節點,取得從各第二葉節點到根節點之最短路徑上的每一節點的兄弟節點(sibling node),並根據目前用於驗證根節點的數位簽章、所取得之各兄弟節點的數值以及特定資料,產生特定資料的查驗結果。
從另一觀點來看,本發明提出一種電腦可讀記錄媒體,其具有用以執行一遠端動態資料的處理與驗證方法的複數個指令,上述方法包括下例步驟:提供用於資料儲存的基數樹狀結構,此基數樹狀結構包括一根節點、數個中
間節點與數個葉節點,且基數樹狀結構的階層數為n,n為正整數。取得並記錄n個初始數值以表示尚未儲存資料的基數樹狀結構,而在尚未儲存資料的基數樹狀結構中,屬於相同階層的節點被指派相同的初始數值。每當對基數樹狀結構進行資料處理操作時,在所有的葉節點中決定出第一葉節點,重新計算從第一葉節點到根節點之最短路徑上每一節點的數值,並記錄重新計算所得到的數值。在對基數樹狀結構進行特定資料的查驗時,在所有的葉節點中找出與特定資料相對應的至少一第二葉節點,取得從各第二葉節點到根節點之最短路徑上的每一節點的兄弟節點,並根據目前用於認證根節點的數位簽章、所取得之各兄弟節點的數值以及特定資料,產生特定資料的查驗結果。
從又一觀點來看,本發明提出一種遠端資料的動態處理與驗證系統,包括可透過網路相互連接並傳遞資訊的資料儲存伺服器與客戶端裝置。其中,資料儲存伺服器包括相互耦接的資料庫與資料庫管理單元。資料庫提供用於資料儲存的基數樹狀結構。基數樹狀結構包括一根節點、多個中間節點與多個葉節點,且階層數為n(n為正整數)。資料庫管理單元取得並記錄n個初始數值以表示尚未儲存資料的基數樹狀結構,其中,屬於相同階層的節點被指派相同的初始數值。每當客戶端裝置欲對基數樹狀結構進行資料處理操作時,資料庫管理單元在所有的葉節點中決定出第一葉節點,重新計算從第一葉節點到根節點之最短路徑上的每一節點的數值,並記錄重新計算而得到的數值,
再透過網路將目前用於認證根節點的數位簽章傳送至客戶端裝置。而當客戶端裝置欲對基數樹狀結構進行特定資料的查驗時,資料庫管理單元在所有的葉節點中找出與特定資料相對應的至少一第二葉節點,取得從各第二葉節點到根節點之最短路徑上每一節點的兄弟節點,並透過網路將目前用於認證根節點的數位簽章、所取得之各兄弟節點的數值以及特定資料傳送至客戶端裝置,以由客戶端裝置根據數位簽章、所接收到之各兄弟節點的數值以及特定資料來產生特定資料的查驗結果。
基於上述,本發明在利用基數樹狀結構儲存遠端動態資料時,並不會針對基數樹狀結構中的所有節點去記錄其數值,而僅記錄每次因資料處理操作而產生數值變化的節點,據此有助於資料的動態處理,並可提升大資料量的處理速度。另外在資料查驗方面,則能利用記錄在根節點的數位簽章以及從特定葉節點到根節點之最短路徑上所有節點的兄弟節點來檢查該筆資料的完整性,亦可達到對該筆資料進行負查詢(negative query)的功效。使用基數樹狀結構有助於讓使用者在客戶端裝置快速且輕便地驗證資料是否被妥善且完整地存放在遠端的資料儲存伺服器,提升使用者對資料儲存伺服器的信賴度。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
在雲端科技的蓬勃發展之下,無論是企業或個人用戶
均已十分習慣將資料儲存在雲端業者提供的資料儲存伺服器。當用戶儲存的是需要經常修改或增減內容的動態資料時,由於資料量不固定,因此傳統適用於靜態資料的資料結構則無法提供理想的處理速度。本發明便是基於上述需求而提出一種基數樹狀結構,並提出使用此基數樹狀結構來處理及查驗資料的方法、系統與電腦可讀記錄媒體。相較於傳統的資料結構,採用本發明所提出之基數樹狀結構能縮短每次變動資料所需要的處理時間,同時可以快速驗證龐大資料的完整性(integrity)與正確性。
圖1是依照本發明之一實施例所繪示之處理與驗證遠端動態資料的環境示意圖。請參閱圖1,資料儲存伺服器110與客戶端裝置120係透過網路130相互傳遞資料。網路130例如是網際網路,但不侷限於此。客戶端裝置120可以是電腦系統、行動裝置,或任何具備網路連接能力的裝置,在此並不限制其種類。
資料儲存伺服器110是由提供雲端儲存服務的雲端業者所管理。需注意的是,圖1是為了方便說明而僅繪示一台資料儲存伺服器110,然而實際上雲端業者可同時控管多台資料儲存伺服器以提供雲端儲存服務。當用戶向雲端業者取得雲端儲存服務的使用權限後,便可透過網路130將客戶端裝置120中的資料上傳並儲存於資料儲存伺服器110。其中,由客戶端裝置120上傳的同一份資料可能被儲存在單一個資料儲存伺服器,或被分散儲存在數個資料儲存伺服器。
資料儲存伺服器110包括相互耦接的資料庫113與資料庫管理單元115。其中,資料庫113是採用基數樹狀結構做為儲存資料的方式,基數樹狀結構將於後配合圖示再做說明。資料庫113可以傳統硬碟(Hard Disk Drive,HDD)或固態硬碟(Solid State Drive,SSD)等做為儲存媒介。或者,資料庫113也可存放在其他類型的儲存裝置中,在此並不加以限制。
在一實施例中,資料庫管理單元115例如是具備資料運算及處理能力的硬體元件,好比像中央處理器、晶片組、微處理器、可程式化控制器、特殊應用積體電路(Application Specific Integrated Circuit,ASIC)或其他類似裝置或上述裝置的組合。在另一實施例中,資料庫管理單元115也可以是具備資料運算及處理能力的軟體元件,例如作業系統或應用程式。或者,資料庫管理單元115也可以是上述硬體元件及軟體元件的組合。資料庫管理單元115用以對資料庫113的內容進行管理,包括因應客戶端裝置120的需求而進行資料的新增、刪除以及更新等處理操作,並可因應客戶端裝置120的需求取得並回傳查驗特定資料所需要的資訊,以供客戶端裝置120進行驗證。
在本實施例中,資料儲存伺服器110與客戶端裝置120係構成遠端資料的動態處理與驗證系統100。在遠端資料的動態處理與驗證系統100中,當用戶需對儲存在資料儲存伺服器110的資料進行各種動態操作時,資料儲存伺服器110能快速地完成處理,而當用戶欲對資料儲存伺服器
110中的巨量資料進行完整性及正確性的查驗時,資料儲存伺服器110僅將必要的資訊回傳給客戶端裝置120,進而讓客戶端裝置120能輕便地產生驗證結果。
以下將以圖2來說明遠端資料的動態處理與驗證系統100的詳細運作方式。請同時參閱圖1與圖2。
首先在步驟S210中,資料庫113提供用於資料儲存的基數樹狀結構,此基數樹狀結構包括一個根節點、數個中間節點與數個葉節點。葉節點是用以儲存來自客戶端裝置120的使用者資料,而根節點及中間節點則用以儲存對使用者資料進行驗證所需要的資訊。在本實施例中,基數樹狀結構的階層數為n,且n為不小於2的正整數。舉例來說n可以是20,但本發明並不以此為限。
接著如步驟S220所示,資料庫管理單元115取得n個初始數值,並記錄這n個初始數值以表示尚未儲存資料的基數樹狀結構。為了方便說明,尚未儲存資料的基數樹狀結構亦稱為空的基數樹狀結構。
在本實施例所示之基數樹狀結構當中,除了葉節點之外的每個節點的分支度(degree)均為2。基此,階層數為n的基數樹狀結構總共會具有2n-1個節點,其中2n-1個為葉節點,1個為根節點,其餘為中間節點。n的數值越大,則基數樹狀結構的葉節點數量越多,故能儲存更大量的使用者資料。然需注意的是,在尚未儲存任何資料的基數樹狀結構中,屬於相同階層的節點都會被指派相同的初始數值,因此即便階層數為n的基數樹狀結構具有2n-1個節
點,但實際上只需要n個初始數值的儲存空間便足以表示整個空的基數樹狀結構。在本實施例中,資料庫管理單元115是以下列算式(1)來取得n個初始數值:
其中,C為預設常數(例如,0),H(x,y)可為以x及y分別為第一及第二輸入值的預設的雜湊函數,但不以此為限。εL則表示在尚未儲存資料的基數樹狀結構中,資料庫管理單元115指派給屬於第L階層之所有節點的初始數值。其中,葉節點係位於第n-1階層,而根節點係位於第0階層。假設預設常數為0,那麼在空的基數樹狀結構中,所有位於第n-1階層的葉節點都將被指派為εn-1(即,0);所有位於第n-2階層的節點都會被指派為εn-2,亦即將0和0分別做為第一及第二輸入值再代入雜湊函數所得到的結果,以此類推。
圖3是依照本發明之一實施例所繪示之尚未儲存資料之基數樹狀結構的示意圖。請參閱圖3,在本實施例中,基數樹狀結構300的階層數為4,共有15個節點,包括一個根節點R,6個中間節點I10、I11、I20、I21、I22、I23,以及8個葉節點T0、T1、T2、T3、T4、T5、T6、T7。由於基數樹狀結構300尚未儲存任何使用者資料,因此資料庫管理單元115僅需以4個初始數值便能表示還是空的基數樹狀結構300,這4個初始數值例如是以上述算式(1)計算所得。其中,根節點R的數值為初始數值ε0、中間節點I10、I11的數值為初始數值ε1、中間節點I20、I21、I22、I23的數
值為初始數值ε2、葉節點T0、T1、T2、T3、T4、T5、T6、T7的數值為初始數值ε3。
接下來請回到圖2之步驟S230,資料庫管理單元115會根據客戶端裝置120的要求對基數樹狀結構進行資料的新增、刪除或更新等資料處理操作(步驟A),或因應客戶端裝置120的要求在基數樹狀結構中進行特定資料的查驗(步驟B)。步驟A及步驟B的詳細內容將於後配合圖示再做說明。
如上所述,資料庫管理單元115是利用n個初始數值表示階層數為n且尚未儲存資料的基數樹狀結構,因此空的基數樹狀結構實際上需要的儲存空間為n個初始數值的儲存空間,其遠小於儲存基數樹狀結構之每個節點所需要的儲存空間。即便是在有資料存入基數樹狀結構之後,每當要進行資料處理操作之際,資料庫管理單元115也只會更新並儲存與這次資料處理操作相關之部分節點的數值,而不需要針對每一次的資料處理操作都去更新並儲存基數樹狀結構之所有節點的數值。
以下將以圖4來說明對基數樹狀結構進行資料處理操作的詳細流程,請參閱圖4。在本實施例中,假設資料儲存伺服器110接獲來自客戶端裝置120的要求,而需對基數樹狀結構進行一資料處理操作。其中,資料處理操作包括將一目標資料新增至基數樹狀結構、利用目標資料對已存在於基數樹狀結構的舊資料做更新,或將目標資料自基數樹狀結構刪除。
如步驟S410所示,資料庫管理單元115在所有葉節點中決定出第一葉節點。詳言之,資料庫管理單元115首先將資料處理操作所對應的目標資料代入預設的雜湊函數,以得到目標資料的雜湊值。接著,資料庫管理單元115對目標資料的雜湊值以及所有葉節點的總數進行一對映函式運算,如模數運算(即,目標資料之雜湊值除以葉節點總數所得到的餘數)在所有的葉節點中決定出第一葉節點。也就是說,每筆資料會透過上述對映函式運算對應到固定的葉節點。例如,假設葉節點總數為LN,資料庫管理單元115可將所有葉節點由左至右依序對應至識別碼0至LN-1,而在取得目標資料之雜湊值除以LN的餘數之後,便以所對應之識別碼等於此餘數的葉節點做為第一葉節點。
接下來在步驟S420中,資料庫管理單元115重新指派第一葉節點的數值。在本實施例中,每個葉節點可用於儲存兩筆以上的不同資料。基此,資料庫管理單元115首先判斷第一葉節點是否也用於儲存不同於目標資料且與目標資料無關的其他資料。具體來說,其他資料並非由目標資料所構成,也不是產生自目標資料。
倘若第一葉節點未用於儲存其他資料,則當資料處理操作係將目標資料自基數樹狀結構刪除時,資料庫管理單元115將第一葉節點的數值重新指派為基數樹狀結構在尚未儲存資料時葉節點被指派的初始數值(例如,由算式(1)得到的初始數值εn-1)。此外,當資料處理操作係將目標
資料加入至基數樹狀結構時,資料庫管理單元115將第一葉節點的數值重新指派為目標資料的雜湊值。必須說明的是,加入目標資料包括將目標資料新增至基數樹狀結構,或利用目標資料對已加入基數樹狀結構的舊資料進行更新。
在第一葉節點也用於儲存其他資料的情況下,當資料處理操作係將目標資料自基數樹狀結構刪除時,表示第一葉節點目前所儲存的數值是產生自目標資料的雜湊值以及其他資料的雜湊值,因此資料庫管理單元115會將第一葉節點的數值重新指派為其他資料的雜湊值,使得第一葉節點不再被用來儲存目標資料。另外,當資料處理操作係將目標資料加入至基數樹狀結構時,資料庫管理單元115根據目標資料與其他資料重新指派第一葉節點的數值。舉例來說,資料庫管理單元115將目標資料與其他資料合併為整合資料後,再將整合資料代入雜湊函數以得到整合資料的雜湊值,並且將第一葉節點的數值指派為整合資料的雜湊值。或者,資料庫管理單元115將目標資料的雜湊值與其他資料的雜湊值合併為整合雜湊值,再將第一葉節點的數值重新指派為整合雜湊值。
在另一實施例中,為了進一步降低資料處理操作所需的運算成本,每一葉節點只用於儲存一筆資料。基此,資料庫113會提供具有更大階層數的基數樹狀結構,以減少數筆資料對應到相同葉節點的機率。以階層數為20的基數樹狀結構為例,由於其具有220個葉節點,因此兩筆資料
對應至相同葉節點的機率僅有約百萬分之一(即,1/220)。即使仍發生了數筆資料對應至相同葉節點的情況,亦可以前述實施例的方式進行特別處理。由於一個葉節點所能儲存的資料量遠小於整個基數樹狀結構能儲存的資料量,倘若有某個葉節點發生資料錯誤的情況,特別針對該葉節點做處理的效率也會高於對整體資料進行處理。
完成第一葉節點的數值更新後,資料庫管理單元115重新計算從第一葉節點到根節點之最短路徑上每一節點的數值,並記錄重新計算所得到的數值。
由於從第一葉節點到根節點之最短路徑上的所有節點會構成一有序集合,因此如步驟S430所示,資料庫管理單元115在這些節點之中,依照特定順序取得一處理節點。其中,特定順序是從第一葉節點開始往根節點方向逐層回溯各祖先節點(ancestor node)。亦即,在第一次執行步驟S430時,資料庫管理單元115會取得第一葉節點來做為處理節點,在第二次執行步驟S430時,資料庫管理單元115會取得第一葉節點的父節點來做為處理節點,以此類推。
接著在步驟S440中,資料庫管理單元115將處理節點的數值與處理節點之兄弟節點(Sibling node)的數值依左右分支的順序依序做為預設雜湊函數H(x,y)的第一和第二輸入值。其中,兄弟節點是指在基數樹狀結構中與處理節點具有相同父節點的節點。詳言之,如步驟S443所示,資料庫管理單元115判斷處理節點為左節點或右節
點。若處理節點為左節點,則如步驟S445所示,資料庫管理單元115將處理節點與處理節點之兄弟節點個別的數值分別作為雜湊函數之第一和第二輸入值。若處理節點為右節點,則如步驟S447所示,資料庫管理單元115將處理節點之兄弟節點與處理節點個別的數值分別作為雜湊函數之第一和第二輸入值。
接下來如步驟S450所示,資料庫管理單元115將第一和第二輸入值代入雜湊函數以計算得到雜湊函數輸出數值,並在步驟S460中,將處理節點之父節點的數值重新指派為雜湊函數輸出數值。
爾後在步驟S470中,資料庫管理單元115在從第一葉節點到根節點之最短路徑上的所有節點之中,依照特定順序再次取得一處理節點,並如步驟S480所示,判斷處理節點是否為根節點。
若處理節點不為根節點,則回到步驟S440,並重複步驟S440至步驟S480。
若處理節點為根節點,則如步驟S490所示,資料庫管理單元115重新產生用於驗證根節點的數位簽章,並透過網路130將此數位簽章傳送至客戶端裝置120。據此完成這次資料處理操作的流程。
如圖4所示,在資料庫管理單元115每進行一次資料處理操作時,會產生數值更動的節點僅是所找出之第一葉節點到根節點的最短路徑上的所有節點。倘若基數樹狀結構的階層數n夠大,則葉節點的數量夠多,那麼在使用基
數樹狀結構的過程中,由於多數葉節點會處於尚未儲存資料的狀態,因此每次加入資料時都可以直接存入對應的葉節點,而不需要改變整個基數樹狀結構的架構,基此十分有助於提升動態加入資料的效率。並且,尚未儲存資料的節點也不需佔用額外的儲存空間。因此,雖然基數樹狀結構的節點數量龐大,但實際上需要用來記錄基數樹狀結構的儲存空間卻會小於所有節點實際需要的儲存空間。
圖5是依照本發明之一實施例所繪示之將目標資料新增至尚未儲存資料之基數樹狀結構300的示意圖。請參閱圖5,在本實施例中假設資料庫管理單元115根據目標資料而決定的第一葉節點為葉節點T2,資料庫管理單元115首先將葉節點T2的數值指派為目標資料的雜湊值。接著,取得從葉節點T2到根節點R之最短路徑所包括的所有節點,並且按照特定順序依序將葉節點T2、中間節點I21、中間節點I10、根節點R取作為處理節點而更新其數值。
舉例來說,當處理節點為葉節點T2時,由於其兄弟節點(即,葉節點T3)尚未儲存使用者資料,因此資料庫管理單元115會配合此次資料處理操作將葉節點T3的數值指派為由算式(1)所取得的初始數值ε3。接著,由於葉節點T2為左節點,因此資料庫管理單元115將葉節點T2的數值作為第一輸入值,並將葉節點T3之數值作為第二輸入值,以算式(1)計算得到雜湊函數輸出數值。並以此雜湊函數輸出數值來作為葉節點T2之父節點(即,中間節點I21)的數值。
接下來,資料庫管理單元115以中間節點I21做為處理節點。類似地,由於中間節點I21的兄弟節點(即,中間節點I20)尚未儲存使用者資料,因此資料庫管理單元115會配合此次資料處理操作而將中間節點I20的數值指派為由算式(1)所取得的初始數值ε2。並將中間節點I21的數值作為第二輸入值,中間節點I20的數值作為第一輸入值以計算雜湊函數輸出數值,再將中間節點I21之父節點(即,中間節點I10)的數值指派為該雜湊函數輸出數值。
接著,資料庫管理單元115以中間節點I10做為處理節點。由於中間節點I10的兄弟節點(即,中間節點I11)尚未儲存使用者資料,因此資料庫管理單元115會配合此次資料處理操作將中間節點I11的數值指派為由算式(1)所取得的初始數值ε1。並將中間節點I11的數值作為第二輸入值,將I10之數值作為第一輸入值,代入算式(1)計算得到雜湊函數輸出數值,再將中間節點I10之父節點(即,根節點R)的數值指派為雜湊函數輸出數值。
爾後,資料庫管理單元115取得根節點R做為處理節點,並重新產生用於驗證根節點R的數位簽章。至此便完成了將目標資料新增至基數樹狀結構300的流程。在上述實施例中,針對此次的資料處理操作,資料庫管理單元115實際上僅需更新並儲存4個節點的數值,其餘未有更動的節點的數值則不需額外進行處理,也不需要額外取得儲存空間來儲存之。
延續圖5所示之實施例,圖6所繪示的是再將另一個
目標資料新增至基數樹狀結構300的示意圖。在本實施例中,資料庫管理單元115根據目標資料而決定的第一葉節點為葉節點T7,因此針對此次資料處理操作,資料庫管理單元115實際僅需依序更新並儲存葉節點T7、中間節點I23、中間節點I11,以及根節點R這4個節點的數值,由於流程與前述實施例相似,故在此不再贅述。
假設客戶端裝置120接著要對已儲存在葉節點T7中的資料進行更新,資料庫管理單元115在接收來自客戶端裝置120的目標資料後,計算目標資料的雜湊值,並將葉節點T7重新指派為此雜湊值,並依序更新中間節點I23、中間節點I11,以及根節點R這4個節點的數值,據此完成資料更新的操作。
爾後,假設客戶端裝置120欲刪除已記錄在葉節點T7中的資料,資料庫管理單元115將葉節點T7的數值重新指派為由算式(1)所計算而得到的初始數值ε3,並且更新中間節點I23、中間節點I11,以及根節點R這4個節點的數值,而完成刪除操作後的基數樹狀結構300將如圖5所示。
如上所述,資料儲存伺服器110係先提供一個具有高階層數的空的基數樹狀結構。空的基數樹狀結構雖然具有相當高的節點數量,但因實際上僅需以符合階層數的數個初始數值便足以表示整個基數樹狀結構,因此並不需要龐大的儲存空間。爾後,在每次需要進行如新增、刪除、更新等資料處理操作時,不需要對基數樹狀結構本身的架構
做任何改變,可直接選擇用以儲存資料的葉節點,並僅需進行相關之葉節點、中間節點以及根節點的數值更新與記錄即可。據此,能大幅提升動態操作資料的處理速度,且所需要的儲存空間大小也相當合理。
就客戶端裝置120而言,也只需要記錄因最近一次資料處理操作而改變的根節點的數值,其餘資訊則都由資料儲存伺服器110負責記錄。據此,即便使用者資料的資料量再巨大,都不會增加客戶端裝置120的負擔。
圖7是依照本發明之一實施例所繪示之對基數樹狀結構進行特定資料之查驗的流程圖。在本實施例中,查驗結果包括確定特定資料存在或不存在於基數樹狀結構及/或確定特定資料的完整性。
客戶端裝置120可透過網路130對資料儲存伺服器110發出要查驗特定資料的要求。如步驟S710所示,資料庫管理單元115接收特定資料。
接著在步驟S720中,資料庫管理單元115判斷特定資料的資料量是否超過門檻值,門檻值例如是一千百萬位元組(Gigabyte,GB),但本發明並不以此為限。
若特定資料的資料量並未超過門檻值,則如步驟S730所示,資料庫管理單元115可利用模數運算在所有的葉節點中找出與特定資料相對應的一或多個第二葉節點。由於同一個檔案可能被切割為數個子資料並被存放在不同的葉節點中,因此當待查驗的特定資料僅存放在單一個節點時,第二葉節點的數量為1。而當待查驗的特定資料係遍
佈於數個節點時,第二葉節點的數量大於1。
接下來在步驟S740中,資料庫管理單元115取得從各第二葉節點到根節點之最短路徑上的每一節點的兄弟節點,並如步驟S750所示,資料庫管理單元115將所取得之各兄弟節點的數值、以及特定資料本身回傳給客戶端裝置120,以由客戶端裝置120根據來自資料儲存伺服器110的上述資料以及記錄在客戶端裝置120之最新的數位簽章來產生特定資料的查驗結果。
以圖8為例,在本實施例中假設客戶端裝置120要求在基數樹狀結構800中對特定資料進行查驗。當資料庫管理單元115接獲來自客戶端裝置120的特定資料後,首先在所有的葉節點中找出特定資料所對應的第二葉節點(例如,葉節點T2)。接著,資料庫管理單元115取得葉節點T2至根節點R之最短路徑上的所有節點(即,葉節點T2、中間節點I21、中間節點I10、根節點R),再取得葉節點T2、中間節點I21以及中間節點I10各自的兄弟節點(即葉節點T3、中間節點I20以及中間節點I11)的數值,並將上述兄弟節點的數值以及特定資料本身回傳給客戶端裝置120。由於客戶端裝置120知曉資料儲存伺服器110所採用的是何種雜湊函數,因此可藉由同樣的雜湊函數、記錄在客戶端裝置120之最新且用於驗證根節點R的數位簽章,以及所接收到的資訊來驗證特定資料的完整性。進一步來說,客戶端裝置120可利用上述資訊進行負查詢,以確認特定資訊是否確實不存在基數樹狀結構之中。
請回到步驟S720,倘若特定資料的資料量超過門檻值,資料庫管理單元115則利用統計抽樣原則來進行查驗。
詳言之,如步驟S760所示,資料庫管理單元115從所有的葉節點中抽取符合預設抽樣數量的數個抽樣葉節點。在本實施例中,預設抽樣數量可以是預設值(例如460,但本發明並不以此為限),或與葉節點總數有關。
接下來在步驟S770中,資料庫管理單元115取得從各抽樣葉節點到根節點之最短路徑上的每一節點的兄弟節點,並在步驟S780中,將各抽樣葉節點所對應之兄弟節點的數值,以及各抽樣葉節點被指派的數值回傳給客戶端裝置120,以由客戶端裝置120根據來自資料儲存伺服器110的上述資料以及記錄在客戶端裝置120之最新的數位簽章來產生抽樣查驗結果。最後如步驟S790所示,客戶端裝置120以抽樣查驗結果做為特定資料的查驗結果。
在本發明的一實施例中,上述遠端動態資料的處理與驗證方法可實作為電腦可讀記錄媒體上的電腦可讀碼,電腦可讀碼包括複數個指令,用以在執行後實現上述遠端動態資料的處理與驗證方法的各步驟。舉例來說,電腦可讀記錄媒體可以是任何能藉由電腦系統讀取的資料儲存裝置,包括唯讀記憶體(Read Only Memory,ROM)、隨機存取記憶體(Random Access Memory,RAM)、唯讀光碟機(compact disc read only memory,CD-ROM)、磁帶、軟碟、光學資料儲存裝置以及載波(例如透過網際網路的資料傳輸)等,在此並不限制其範圍。
綜上所述,本發明所述之遠端動態資料的處理與驗證方法、系統,以及電腦可讀記錄媒體能快速驗證存放在遠端之龐大資料的完整性,據此讓客戶端可以快速且輕便地取得驗證結果。除此之外,用戶端更可以執行負查詢,以驗證遠端中確實不存在某筆資料。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100‧‧‧遠端資料的動態處理與驗證系統
110‧‧‧資料儲存伺服器
113‧‧‧資料庫
115‧‧‧資料庫管理單元
120‧‧‧客戶端裝置
130‧‧‧網路
S210~S230‧‧‧本發明之一實施例所述之遠端資料的動態處理與驗證方法的各步驟
300、800‧‧‧基數樹狀結構
R‧‧‧根節點
I10、I11、I20、I21、I22、I23‧‧‧中間節點
T0、T1、T2、T3、T4、T5、T6、T7‧‧‧葉節點
S410~S490‧‧‧本發明之一實施例所述之對基數樹狀結構進行資料處理操作的各步驟
S710~S790‧‧‧本發明之一實施例所述之對基數樹狀結構進行特定資料之查驗的各步驟
圖1是依照本發明之一實施例所繪示處理與驗證遠端動態資料的環境示意圖。
圖2是依照本發明之一實施例所繪示之遠端動態資料的處理與驗證方法的流程圖。
圖3是依照本發明之一實施例所繪示之尚未儲存資料之基數樹狀結構的示意圖。
圖4是依照本發明之一實施例所繪示之對基數樹狀結構進行資料處理操作的流程圖。
圖5、6是依照本發明之一實施例所繪示之將目標資料新增至基數樹狀結構的示意圖。
圖7是依照本發明之一實施例所繪示之對基數樹狀結構進行特定資料之查驗的流程圖。
圖8是依照本發明之一實施例所繪示之在基數樹狀結構中查驗特定資料的示意圖。
S210~S230‧‧‧本發明之一實施例所述之遠端資料的動態處理與驗證方法的各步驟
Claims (19)
- 一種遠端動態資料的處理與驗證方法,該方法包括:提供用於資料儲存的一基數樹狀結構,該基數樹狀結構包括一根節點、多個中間節點與多個葉節點,且該基數樹狀結構的階層數為n,n為正整數;取得並記錄n個初始數值以表示尚未儲存資料的該基數樹狀結構,其中在尚未儲存資料的該基數樹狀結構中,屬於相同階層的節點被指派相同的初始數值;每當對該基數樹狀結構進行一資料處理操作時,在該些葉節點中決定出一第一葉節點,重新計算從該第一葉節點到該根節點之最短路徑上每一節點的數值,並記錄重新計算所得到的數值;以及在對該基數樹狀結構進行一特定資料的查驗時,在該些葉節點中找出與該特定資料相對應的至少一第二葉節點,取得從各該至少一第二葉節點到該根節點之最短路徑上的每一節點的兄弟節點(sibling node),並根據目前用於驗證該根節點的一數位簽章、所取得之各兄弟節點的數值以及該特定資料,產生該特定資料的一查驗結果。
- 如申請專利範圍第1項所述之遠端動態資料的處理與驗證方法,包括以下列算式(1)來取得該n個初始數值:
其中,C為一預設常數,H(x,y)為一雜湊函數,且x及y分別為該雜湊函數的一第一輸入值及一第二輸入值,εL表示在尚未儲存資料的該基數樹狀結構中,屬於第L階層的節點被指派的初始數值,其中該些葉節點係位於第n-1階層,且該根節點係位於第0階層。 - 如申請專利範圍第1項所述之遠端動態資料的處理與驗證方法,其中在該些葉節點中決定出該第一葉節點的步驟包括:將該資料處理操作所對應的一目標資料代入一雜湊函數以得到該目標資料的雜湊值;對該目標資料的雜湊值以及該些葉節點的一總數進行一函式對應運算;以及依據該函式對應運算的結果在該些葉節點中決定出該第一葉節點。
- 如申請專利範圍第3項所述之遠端動態資料的處理與驗證方法,其中在決定出該第一葉節點的步驟之後,該方法更包括:判斷該第一葉節點是否也用於儲存一其他資料,其中該其他資料與該目標資料不同且無關;若該第一葉節點未用於儲存該其他資料,則當該資料處理操作係將該目標資料自該基數樹狀結構刪除時,將該第一葉節點的數值重新指派為該基數樹狀結構在尚未儲存資料時該些葉節點被指派的初始數值,而當該資料處理操作係將該目標資料加入至該基數樹狀結構時,將該第一葉 節點的數值重新指派為該目標資料的雜湊值;以及若該第一葉節點也用於儲存該其他資料,則當該資料處理操作係將該目標資料自該基數樹狀結構刪除時,將該第一葉節點的數值重新指派為該其他資料的雜湊值,並且當該資料處理操作係將該目標資料加入至該基數樹狀結構時,根據該目標資料與該其他資料重新指派該第一葉節點的數值。
- 如申請專利範圍第4項所述之遠端動態資料的處理與驗證方法,其中根據該目標資料與該其他資料重新指派該第一葉節點的數值的步驟包括:將該目標資料與該其他資料合併為一整合資料;將該整合資料代入該雜湊函數以得到該整合資料的雜湊值;以及將該第一葉節點的數值重新指派為該整合資料的雜湊值。
- 如申請專利範圍第4項所述之遠端動態資料的處理與驗證方法,其中根據該目標資料與該其他資料重新指派該第一葉節點的數值的步驟包括:將該目標資料的雜湊值與該其他資料的雜湊值合併為一整合雜湊值;以及將該第一葉節點的數值重新指派為該整合雜湊值。
- 如申請專利範圍第3項所述之遠端動態資料的處理與驗證方法,其中重新計算從該第一葉節點到該根節點之最短路徑上每一節點的數值的步驟包括: a.依照一特定順序,在從該第一葉節點到該根節點之最短路徑上的所有節點之中取得一處理節點,其中該特定順序是從該第一葉節點開始往該根節點方向逐層回溯各祖先節點(ancestor node);b.依照該處理節點與該處理節點之兄弟節點在該基數樹狀結構中的左右分支順序,將該處理節點的數值與該處理節點之兄弟節點的數值分別做為該雜湊函數的一第一輸入值及一第二輸入值;c.將該第一輸入值及該第二輸入值代入該雜湊函數以得到一雜湊函數輸出數值;d.將該處理節點的父節點(parent node)的數值重新指派為該雜湊函數輸出數值;以及e.重複步驟a.至步驟d.,直到該處理節點為該根節點時,重新產生用於驗證該根節點的該數位簽章。
- 如申請專利範圍第1項所述之遠端動態資料的處理與驗證方法,其中該查驗結果至少包括下列其中之一:確定該特定資料存在或不存在於該基數樹狀結構、確定該特定資料的完整性。
- 如申請專利範圍第1項所述之遠端動態資料的處理與驗證方法,更包括:當該特定資料的資料量超過一門檻值,從該些葉節點中抽取符合一預設抽樣數量的多個抽樣葉節點;取得從各該些抽樣葉節點到該根節點之最短路徑上的每一節點的兄弟節點; 根據目前用於驗證該根節點的該數位簽章、各該些抽樣葉節點所對應之兄弟節點的數值,以及各該些抽樣葉節點被指派的數值,產生一抽樣查驗結果;以及以該抽樣查驗結果代表該特定資料的該查驗結果。
- 一種電腦可讀記錄媒體,其具有用以執行一遠端動態資料的處理與驗證方法的複數個指令,該方法包括下例步驟:提供用於資料儲存的一基數樹狀結構,該基數樹狀結構包括一根節點、多個中間節點與多個葉節點,且該基數樹狀結構的階層數為n,n為正整數;取得並記錄n個初始數值以表示尚未儲存資料的該基數樹狀結構,其中在尚未儲存資料的該基數樹狀結構中,屬於相同階層的節點被指派相同的初始數值;每當對該基數樹狀結構進行一資料處理操作時,在該些葉節點中決定出一第一葉節點,重新計算從該第一葉節點到該根節點之最短路徑上每一節點的數值,並記錄重新計算而得到的數值;以及在對該基數樹狀結構進行一特定資料的查驗時,在該些葉節點中找出與該特定資料相對應的至少一第二葉節點,取得從各該至少一第二葉節點到該根節點之最短路徑上每一節點的兄弟節點,並根據目前用於驗證該根節點的一數位簽章、所取得之各兄弟節點的數值以及該特定資料,產生該特定資料的一查驗結果。
- 如申請專利範圍第10項所述之電腦可讀記錄媒 體,其中取得該n個初始數值的步驟包括以下列算式(1)來取得:
其中,C為一預設常數,H(x,y)為一雜湊函數,且x及y分別為該雜湊函數的一第一輸入值及一第二輸入值,εL表示在尚未儲存資料的該基數樹狀結構中,屬於第L階層的節點被指派的初始數值,其中該些葉節點係位於第n-1階層,且該根節點係位於第0階層。 - 如申請專利範圍第10項所述之電腦可讀記錄媒體,其中在該些葉節點中決定出該第一葉節點的步驟包括:將該資料處理操作所對應的一目標資料代入一雜湊函數以得到該目標資料的雜湊值;對該目標資料的雜湊值以及該些葉節點的一總數進行一對映函式運算;以及依據該對映函式運算的結果在該些葉節點中決定出該第一葉節點。
- 如申請專利範圍第12項所述之電腦可讀記錄媒體,其中在決定出該第一葉節點的步驟之後,該方法更包括:當該資料處理操作係將該目標資料自該基數樹狀結構刪除時,將該第一葉節點的數值重新指派為在該基數樹狀結構尚未儲存資料時該些葉節點被指派的初始數值;當該資料處理操作係利用該目標資料更新該基數樹狀結構時,將該第一葉節點的數值重新指派為該目標資料 的雜湊值;當該資料處理操作係將該目標資料新增至該基數樹狀結構時,判斷該第一葉節點是否已被指派為一其他資料的雜湊值,其中該其他資料不同於該目標資料,且該其他資料的雜湊值不同於在該基數樹狀結構尚未儲存資料時該些葉節點被指派的初始數值;若該第一葉節點尚未被指派該其他資料的雜湊值,則將該第一葉節點的數值重新指派為該目標資料的雜湊值;以及若該第一葉節點已被指派該其他資料的雜湊值,則根據該目標資料與該其他資料重新指派該第一葉節點的數值。
- 如申請專利範圍第13項所述之電腦可讀記錄媒體,其中根據該目標資料與該其他資料重新指派該第一葉節點的數值的步驟包括:將該目標資料與該其他資料合併為一整合資料;將該整合資料代入該雜湊函數以得到該整合資料的雜湊值;以及將該第一葉節點的數值重新指派為該整合資料的雜湊值。
- 如申請專利範圍第13項所述之電腦可讀記錄媒體,其中根據該目標資料與該其他資料重新指派該第一葉節點的數值的步驟包括:將該目標資料的雜湊值與該其他資料的雜湊值合併 為一整合雜湊值;以及將該第一葉節點的數值重新指派為該整合雜湊值。
- 如申請專利範圍第12項所述之電腦可讀記錄媒體,其中重新計算從該第一葉節點到該根節點之最短路徑上每一節點的數值的步驟包括:a.依照一特定順序,在從該第一葉節點到該根節點之最短路徑上的所有節點之中取得一處理節點,其中該特定順序是從該第一葉節點開始往該根節點方向逐層回溯各祖先節點;b.依照該處理節點與該處理節點之兄弟節點在該基數樹狀結構中的左右分支順序,將該處理節點的數值與該處理節點之兄弟節點的數值分別做為該雜湊函數的一第一輸入值及一第二輸入值;c.將該第一輸入值及該第二輸入值代入該雜湊函數以得到一雜湊函數輸出數值;d.將該處理節點的父節點的數值重新指派為該雜湊函數輸出數值;e.重複步驟a.至步驟d.,直到該處理節點為該根節點時,重新產生用於驗證該根節點的該數位簽章。
- 如申請專利範圍第10項所述之電腦可讀記錄媒體,其中該查驗結果至少包括下列其中之一:確定該特定資料存在或不存在於該基數樹狀結構、確定該特定資料的完整性。
- 如申請專利範圍第10項所述之電腦可讀記錄媒 體,該方法更包括:當該特定資料的資料量超過一門檻值,從該些葉節點中抽取符合一預設抽樣數量的多個抽樣葉節點;取得從各該些抽樣葉節點到該根節點之最短路徑上的每一節點的兄弟節點;根據目前用於驗證該根節點的該數位簽章、各該些抽樣葉節點所對應之兄弟節點的數值,以及各該些抽樣葉節點被指派的數值,產生一抽樣查驗結果;以及以該抽樣查驗結果代表該特定資料的該查驗結果。
- 一種遠端資料的動態處理與驗證系統,包括:一資料儲存伺服器,包括:一資料庫,提供用於資料儲存的一基數樹狀結構,該基數樹狀結構包括一根節點、多個中間節點與多個葉節點,且該基數樹狀結構的階層數為n,n為正整數;以及一資料庫管理單元,耦接該資料庫,該資料庫管理單元取得並記錄n個初始數值以表示尚未儲存資料的該基數樹狀結構,其中在尚未儲存資料的該基數樹狀結構中,屬於相同階層的節點被指派相同的初始數值;以及一客戶端裝置,透過一網路連接該資料儲存伺服器,其中,每當該客戶端裝置欲對該基數樹狀結構進行一資料處理操作時,該資料庫管理單元在該些葉節點中決定出一第一葉節點,重新計算從該第一葉節點到該根節點之 最短路徑上每一節點的數值,並記錄重新計算而得到的數值,以及透過該網路將目前用於驗證該根節點的一數位簽章傳送至該客戶端裝置,當該客戶端裝置欲對該基數樹狀結構進行一特定資料的查驗時,該資料庫管理單元在該些葉節點中找出與該特定資料相對應的至少一第二葉節點,取得從各該至少一第二葉節點到該根節點之最短路徑上每一節點的兄弟節點,並透過該網路將所取得之各兄弟節點的數值以及該特定資料傳送至該客戶端裝置,以由該客戶端裝置根據目前用於驗證該根節點的該數位簽章、所接收到之各兄弟節點的數值以及該特定資料,產生該特定資料的一查驗結果。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW101137778A TWI483138B (zh) | 2012-10-12 | 2012-10-12 | 遠端動態資料的處理與驗證方法、系統,以及電腦可讀記錄媒體 |
| US13/741,397 US9378155B2 (en) | 2012-10-12 | 2013-01-15 | Method for processing and verifying remote dynamic data, system using the same, and computer-readable medium |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW101137778A TWI483138B (zh) | 2012-10-12 | 2012-10-12 | 遠端動態資料的處理與驗證方法、系統,以及電腦可讀記錄媒體 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW201415274A true TW201415274A (zh) | 2014-04-16 |
| TWI483138B TWI483138B (zh) | 2015-05-01 |
Family
ID=50476550
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW101137778A TWI483138B (zh) | 2012-10-12 | 2012-10-12 | 遠端動態資料的處理與驗證方法、系統,以及電腦可讀記錄媒體 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US9378155B2 (zh) |
| TW (1) | TWI483138B (zh) |
Families Citing this family (20)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20150254219A1 (en) * | 2014-03-05 | 2015-09-10 | Adincon Networks LTD | Method and system for injecting content into existing computerized data |
| US10862690B2 (en) | 2014-09-30 | 2020-12-08 | Telefonaktiebolaget Lm Ericsson (Publ) | Technique for handling data in a data network |
| WO2016131559A1 (en) | 2015-02-20 | 2016-08-25 | Telefonaktiebolaget Lm Ericsson (Publ) | Method of providing a hash value for a piece of data, electronic device and computer program |
| US10396995B2 (en) | 2015-02-20 | 2019-08-27 | Telefonaktiebolaget Lm Ericsson (Publ) | Method of providing a hash value for a piece of data, electronic device and computer program |
| US10043039B2 (en) * | 2015-04-10 | 2018-08-07 | Telefonaktiebolaget Lm Ericsson (Publ) | Verification paths of leaves of a tree |
| KR101772554B1 (ko) * | 2016-02-02 | 2017-08-30 | 주식회사 코인플러그 | 파일에 대한 노터리 서비스를 제공하고 상기 노터리 서비스를 사용하여 기록된 파일에 대한 검증을 수행하는 방법 및 서버 |
| US10671588B2 (en) * | 2016-07-08 | 2020-06-02 | Ebay Inc. | Multiple database updates using paths |
| US20180054417A1 (en) * | 2016-08-17 | 2018-02-22 | lnfersight LLC | Packet tracking |
| US10999250B1 (en) | 2016-08-17 | 2021-05-04 | Infersight Llc | System and method for validating a message conveyed via a network |
| CN107040582B (zh) * | 2017-02-17 | 2020-08-14 | 创新先进技术有限公司 | 一种数据处理方法及装置 |
| CN111209419B (zh) * | 2018-11-20 | 2023-09-19 | 浙江宇视科技有限公司 | 一种图像数据存储的方法及装置 |
| WO2020133098A1 (zh) * | 2018-12-27 | 2020-07-02 | 驭势科技(北京)有限公司 | 一种分布式计算网络系统与方法 |
| US11556563B2 (en) | 2020-06-12 | 2023-01-17 | Oracle International Corporation | Data stream processing |
| US11663192B2 (en) * | 2020-12-10 | 2023-05-30 | Oracle International Corporation | Identifying and resolving differences between datastores |
| CN112883113B (zh) * | 2021-02-22 | 2023-01-31 | 深圳市星网储技术有限公司 | 一种基于区块链的数据价值凭证和验证的证明和记录方法及装置 |
| US12190112B2 (en) | 2022-01-24 | 2025-01-07 | Oracle International Corporation | Cooperative garbage collection barrier elision |
| US12197324B1 (en) | 2023-08-01 | 2025-01-14 | Oracle International Corporation | Thread-local garbage collection |
| US12487924B2 (en) | 2024-01-02 | 2025-12-02 | Oracle International Corporation | Concurrent lazy reference counting in an old garbage collection generation |
| US12399820B1 (en) | 2024-02-22 | 2025-08-26 | Oracle International Corporation | Selecting garbage collection processes |
| US12306750B1 (en) | 2024-02-22 | 2025-05-20 | Oracle International Corporation | Selecting garbage collection processes |
Family Cites Families (29)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5651099A (en) * | 1995-01-26 | 1997-07-22 | Hewlett-Packard Company | Use of a genetic algorithm to optimize memory space |
| US7466703B1 (en) * | 1998-05-01 | 2008-12-16 | Alcatel-Lucent Usa Inc. | Scalable high speed router apparatus |
| US6067574A (en) * | 1998-05-18 | 2000-05-23 | Lucent Technologies Inc | High speed routing using compressed tree process |
| US6981151B1 (en) * | 1999-04-08 | 2005-12-27 | Battelle Energy Alliance, Llc | Digital data storage systems, computers, and data verification methods |
| US6411957B1 (en) * | 1999-06-30 | 2002-06-25 | Arm Limited | System and method of organizing nodes within a tree structure |
| JP3630057B2 (ja) * | 2000-01-26 | 2005-03-16 | 日本電気株式会社 | 検索用データ構造構築方法、その装置、及び機械可読プログラム記録媒体 |
| US7089240B2 (en) * | 2000-04-06 | 2006-08-08 | International Business Machines Corporation | Longest prefix match lookup using hash function |
| US6594655B2 (en) * | 2001-01-04 | 2003-07-15 | Ezchip Technologies Ltd. | Wildcards in radix- search tree structures |
| US20020184504A1 (en) * | 2001-03-26 | 2002-12-05 | Eric Hughes | Combined digital signature |
| US8532127B2 (en) * | 2001-10-19 | 2013-09-10 | Juniper Networks, Inc. | Network routing using indirect next hop data |
| US7062499B2 (en) * | 2002-01-08 | 2006-06-13 | Intel Corporation | Enhanced multiway radix tree and related methods |
| AU2003210766A1 (en) * | 2002-02-01 | 2003-09-02 | Tellabs Operations, Inc. | Method and apparatus for multi-layer network in sonet /sdh |
| US6937652B2 (en) * | 2002-04-19 | 2005-08-30 | Seiko Epson Corporation | Frame compression using radix approximation |
| US7325071B2 (en) * | 2002-06-04 | 2008-01-29 | Lucent Technologies Inc. | Forwarding traffic in a network using a single forwarding table that includes forwarding information related to a plurality of logical networks |
| US6744774B2 (en) * | 2002-06-27 | 2004-06-01 | Nokia, Inc. | Dynamic routing over secure networks |
| US7236495B2 (en) * | 2002-10-25 | 2007-06-26 | Alcatel Lucent | Calendar heap system and method for efficient sorting |
| US20040210588A1 (en) * | 2003-04-18 | 2004-10-21 | Simkins Mark B. | Methods and apparatus for address lookup |
| US20040249712A1 (en) * | 2003-06-06 | 2004-12-09 | Brown Sean D. | System, method and computer program product for presenting, redeeming and managing incentives |
| US6975253B1 (en) * | 2004-08-06 | 2005-12-13 | Analog Devices, Inc. | System and method for static Huffman decoding |
| US7315871B2 (en) * | 2005-01-19 | 2008-01-01 | International Business Machines Inc. Corporation | Method, system and program product for interning invariant data objects in dynamic space constrained systems |
| US7706386B2 (en) * | 2005-10-26 | 2010-04-27 | Cisco Technology, Inc. | Fast 2-key scheduler |
| US20080189265A1 (en) * | 2007-02-06 | 2008-08-07 | Microsoft Corporation | Techniques to manage vocabulary terms for a taxonomy system |
| GB2452760A (en) * | 2007-09-14 | 2009-03-18 | Data Connection Ltd | Storing and searching data in a database tree structure for use in data packet routing applications. |
| CN101960801B (zh) * | 2008-03-04 | 2014-05-21 | 法国电信公司 | 用于确定将根节点链接到多个叶节点的点到多点树的技术 |
| US7903666B1 (en) * | 2008-03-31 | 2011-03-08 | Extreme Networks, Inc. | Method and system for compressing route entries in a route table based on equal-cost multi-paths (ECMPs) matches |
| US20090327904A1 (en) * | 2008-06-27 | 2009-12-31 | Microsoft Corporation | Presenting dynamic folders |
| EP2341676A1 (en) * | 2009-12-30 | 2011-07-06 | ST-Ericsson SA | Branch processing of search tree in a sphere decoder |
| TWI409650B (zh) * | 2010-08-11 | 2013-09-21 | Hon Hai Prec Ind Co Ltd | 在資料模型中查找參數的方法 |
| US8739308B1 (en) * | 2012-03-27 | 2014-05-27 | Amazon Technologies, Inc. | Source identification for unauthorized copies of content |
-
2012
- 2012-10-12 TW TW101137778A patent/TWI483138B/zh active
-
2013
- 2013-01-15 US US13/741,397 patent/US9378155B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| US9378155B2 (en) | 2016-06-28 |
| US20140108817A1 (en) | 2014-04-17 |
| TWI483138B (zh) | 2015-05-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI483138B (zh) | 遠端動態資料的處理與驗證方法、系統,以及電腦可讀記錄媒體 | |
| US12056583B2 (en) | Target variable distribution-based acceptance of machine learning test data sets | |
| US10366053B1 (en) | Consistent randomized record-level splitting of machine learning data | |
| US10713589B1 (en) | Consistent sort-based record-level shuffling of machine learning data | |
| CN106233259B (zh) | 在分散存储网络中检索多世代存储数据的方法和系统 | |
| CN108446407A (zh) | 基于区块链的数据库审计方法和装置 | |
| CN111247518A (zh) | 数据库分片 | |
| US8321487B1 (en) | Recovery of directory information | |
| BR112015023617B1 (pt) | Método e sistema para gerar um trie de geocódigo e facilitar buscas de geocódigo reverso | |
| JP7157141B2 (ja) | ゲノム・ファイルのためのコンテキスト・アウェア差分アルゴリズム | |
| US11222131B2 (en) | Method for a secure storage of data records | |
| US20170083617A1 (en) | Posterior probabilistic model for bucketing records | |
| CN112912870B (zh) | 租户标识符的转换 | |
| US10936640B2 (en) | Intelligent visualization of unstructured data in column-oriented data tables | |
| US12189665B2 (en) | Conversion and migration of key-value store to relational model | |
| CN103973810A (zh) | 基于互联网协议ip盘的数据处理方法和装置 | |
| CN105653592A (zh) | 一种基于hdfs的小文件合并工具和方法 | |
| CN104699740A (zh) | 针对文件生成内容可寻址存储签名的方法和系统 | |
| CN103793391B (zh) | 远端动态数据的处理与验证方法和系统 | |
| CN116249982A (zh) | 用计算机加密处理来验证所接收的传感器数据的被跟踪部分 | |
| US20220078236A1 (en) | Multipart upload for distributed file systems | |
| CN112889039B (zh) | 用于克隆后租户标识符转换的记录的标识 | |
| US8375071B2 (en) | File management information storage apparatus and method and program for controlling the same | |
| US20230315883A1 (en) | Method to privately determine data intersection | |
| US11366796B2 (en) | Systems and methods for compressing keys in hierarchical data structures |