[發明專利]一種適用于嵌入式處理器的數據完整性驗證方法有效
| 申請號: | 201010191552.7 | 申請日: | 2010-06-04 |
| 公開(公告)號: | CN101853190A | 公開(公告)日: | 2010-10-06 |
| 發明(設計)人: | 劉政林;霍文捷;陳天山;郭超 | 申請(專利權)人: | 華中科技大學 |
| 主分類號: | G06F11/00 | 分類號: | G06F11/00 |
| 代理公司: | 華中科技大學專利中心 42201 | 代理人: | 曹葆青 |
| 地址: | 430074 湖北*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 適用于 嵌入式 處理器 數據 完整性 驗證 方法 | ||
1.一種適用于嵌入式處理器的數據完整性驗證方法,包括初始化操作過程中的數據完整性驗證及讀、寫操作過程中的數據完整性驗證;其特征在于,
初始化操作過程中的數據完整性驗證包括下述步驟:
(A1)計算待建立的多粒度散列樹的層數;
(A2)對物理內存中數據塊進行散列計算,按照步驟(A1)中計算的層數建立多粒度散列樹,并將多粒度散列樹存儲在散列緩存中;
(A3)從可信存儲區讀取安全信息,并與多粒度散列樹的根節點的值進行比較,如果兩者相等,說明內存中的數據未遭篡改,則將驗證標志位置為1;兩者不等,則置標志位為0,表示內存中的數據已遭篡改;
讀操作過程的數據完整性驗證過程為:
(B1)計算物理內存中兩個相鄰數據塊的散列值;
(B2)在散列緩存中查找是否有與步驟(B1)所述的兩個相鄰數據塊的相應葉節點的值,如果有,進入步驟(B3),否則,該相應葉節點缺失,稱之為當前缺失節點,用步驟(B1)中計算出的散列值代替當前缺失節點值,然后轉入步驟(B4);
(B3)讀散列緩存中相應葉節點的值,并與步驟(B1)中計算出的散列值進行比較,若兩值相等,說明數據塊是完整的,則將驗證標志位置為1,否則,將驗證標志位置為0,表示數據塊不是完整的;最后均進入步驟(B9);
(B4)對當前缺失節點按照下面過程進行處理:
(B41)在散列緩存中查找當前缺失節點的兄弟節點,如果兄弟節點的值缺失,稱該兄弟節點為當前缺失節點,進入步驟(B42),否則,進入步驟(B5);
(B42)處理步驟如下:
(B421)判斷當前缺失節點是否為葉節點,如果是,則由缺失節點對應的物理內存中數據塊計算出散列值,用計算出的散列值代替當前缺失節點值,然后進入步驟(B422);如果不是,直接轉入步驟(B422);
(B422)計算當前缺失節點的子節點的地址;
(B423)在散列緩存中查找是否有當前缺失節點的子節點的值,若所有子節點都不缺失,則由子節點的值計算出散列值,并用該散列值代替缺失節點的值,然后進入步驟(B5);若有子節點缺失,則稱缺失的子節點為當前缺失節點,然后轉入步驟(B42);
(B5)判斷是否所有的兄弟節點都被查找到了,如果是,則進入步驟(B6),否則跳到步驟(B41);
(B6)讀出步驟(B4)中當前缺失節點的兄弟節點的散列值并計算父節點的散列值;
(B7)在散列緩存中查找是否有父節點的值;如果父節點的值缺失,則稱該父節點為當前缺失節點,轉入步驟(B8);否則,讀出父節點的值,并跳到(B9);
(B8)判斷步驟(B6)中的當前缺失節點是否為根節點;如果不是,用步驟(B6)中計算出的散列值代替當前缺失節點值,然后轉入步驟(B4);如果是,則從可信存儲區中讀出根節點的值,用之代替父節點的值,然后進入步驟(B9);
(B9)比較讀出的父節點值和步驟(B6)中計算出的父節點值;若兩值相等,說明數據塊是完整的,則將驗證標志位置為1;否則,將驗證標志位置為0,表示數據塊不是完整的;
(B10)讀操作驗證過程結束;
寫操作過程的數據完整性驗證過程為:
(C1)計算待改寫數據塊對應的散列節點的地址,該散列節點稱之為當前缺失節點;
(C2)在散列緩存中查找是否有當前缺失節點的值;如果有,則轉入步驟(C3);如果沒有,則計算待改寫的數據塊的散列值,并用該散列值代替當前節點值,然后進入步驟(C3);
(C3)查找該當前缺失節點兄弟節點;如果兄弟節點缺失,則稱缺失的兄弟節點為當前缺失節點,進入步驟(C4);如果不缺失,則進入步驟(C5);
(C4)處理步驟如下:
(C41)判斷當前缺失節點是否為葉節點,如果不是,轉入步驟(C42);如果是,則由缺失節點對應的物理內存中數據塊計算出散列值,并用計算出的散列值代替當前缺失節點值,然后進入步驟(C5);
(C42)計算當前缺失節點的子節點的地址;
(C43)在散列緩存中查找是否有當前缺失節點的子節點的值,若所有子節點都不缺失,則由子節點的值計算出散列值,并用該散列值代替缺失節點的值,然后進入步驟(C5);若有子節點缺失,則稱缺失的子節點為當前缺失節點,然后轉入步驟(C4);
(C5)判斷是否步驟(C3)所有的兄弟節點都被查找到了,如果是,則進入步驟(C6),否則跳到步驟(C3);
(C6)讀步驟(C3)中第一個當前缺失節點及其兄弟節點的散列值并計算它們的父節點的散列值;
(C7)在散列緩存中查找是否有父節點的值;如果父節點的值缺失,則稱該節點為當前缺失節點,轉入步驟(C8);否則,讀出父節點的值,并跳到(C9);
(C8)判斷步驟(C7)中的當前缺失節點是否為根節點;如果不是,用步驟(C6)中計算出的散列值代替當前缺失節點的值,然后轉入步驟(C3);如果是,則從可信存儲區中讀出根節點的值,用之代替父節點的值,然后進入步驟(C9);
(C9)比較讀出的父節點值和步驟(C6)中計算出的父節點值;若兩值相等,說明數據塊是完整的,則將驗證標志位置為1,然后轉入步驟(C10);否則,將驗證標志位置為0,表示數據塊不是完整的,跳到(C11);
(C10)更新當前節點和它的父節點值;
(C11)寫操作驗證過程結束。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華中科技大學,未經華中科技大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201010191552.7/1.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





