一種通用飛行數據的加密方法
【專利摘要】本發明提出一種高效、安全的飛行數據加密方法,以實現數據高效處理、數據源頭加密、密鑰安全交換。該方法包括以下步驟:隨機生成AES加密算法的密鑰,使用與地面系統私鑰對應的證書加密隨機生成的密鑰,并將經過加密的密鑰寫入記錄文件中;采集所需飛行數據的值,并將其寫入內存;將內存中的數據做壓縮、加密處理,加密處理過程中使用AES算法,使用隨機生成的密鑰;然后將數據寫入記錄文件中;直至記錄停止條件觸發;將機上存儲的記錄文件下傳至地面,地面使用證書私鑰解密出步驟1)中所述的隨機生成的密鑰,再用該密鑰解密密文。
【專利說明】一種通用飛行數據的加密方法
【技術領域】
[0001]本發明屬于機載嵌入式設備數據傳輸及處理技術,具體涉及一種飛機數字化飛行數據的加密、處理到解密的一整套方法。
【背景技術】
[0002]隨著現代航空業的發展,新興航空技術理念諸如飛行品質監控(FOQA)、預測和健康管理(PHM)等層出不窮,這些理念都需要大量飛行數據作為基礎或支持。飛行數據產生于機上的各傳感器,隨后經過收集、存儲和傳輸等活動被轉移至地面分析設備。隨著無線快速存取飛行數據記錄器(WQAR)的發展和普及,以往的拔卡式記錄器將被逐步替代,目前常用的無線傳輸途徑有2g、3g網絡和機場無線網絡,無論在何種無線傳輸的使用過程中,保證飛行數據的保密性、以及保證數據處理的高效性已成為研宄的重點。
【發明內容】
[0003]為了滿足對飛行數據保密性以及下載實時性的要求,本發明提出一種高效、安全的飛行數據加密方法(這里所說的加密方法是指加密、采集存儲數據、解密的一整套流程),以實現數據高效處理、數據源頭加密(數據明文在解密前不可見)、密鑰安全交換。
[0004]本發明的技術方案如下:
[0005]一種通用飛行數據的加密方法,包括以下步驟:
[0006]I)隨機生成AES加密算法的密鑰,使用與地面系統私鑰對應的證書加密隨機生成的密鑰,并將經過加密的密鑰寫入記錄文件中;
[0007]2)采集所需飛行數據的值,并將其寫入內存;
[0008]3)每當內存數據到達設定的容量時,則將內存中的數據做壓縮、加密處理,加密處理過程中使用AES算法,使用步驟I)中所述的隨機生成的密鑰;
[0009]4)將經過壓縮、加密處理的數據寫入所述記錄文件中;
[0010]5)重復進行步驟2)到步驟4)直至記錄停止條件觸發;
[0011]6)飛機停靠機場后,將機上存儲的記錄文件下傳至地面;
[0012]7)地面使用證書私鑰解密出步驟I)中所述的隨機生成的密鑰,再用該密鑰解密密文。
[0013]基于上述方案,本發明還進一步作如下優化限定:
[0014]步驟I)中將經過加密的密鑰寫入記錄文件的最前端;
[0015]步驟2)中是按照以下設定的格式生成數據幀:數據幀采用滿足ARINC717的存儲格式,每個數據幀由四個子幀構成,每個子幀的第一個字是同步字,第二個字為“有效性字”;每個數據幀的第一個子幀的第三個字為“幀計數字”(Frame Counter);其他字存儲數字化飛行參數;
[0016]步驟4)是將多個數據幀經過壓縮、加密處理作為數據部分,然后在首尾分別加上數據塊頭和數據塊尾,組成一個數據塊,置于步驟2)寫入的密鑰之后;
[0017]重復進行步驟2)到步驟4)直至記錄停止條件觸發,這個過程中各個數據塊按照生成時間順序首尾相接寫入記錄文件中,從而完成數字化飛行參數的存儲。
[0018]每一個數據塊中,數據塊頭包括CRC校驗和數據長度信息,其中CRC校驗的范圍為所屬數據塊的數據,用于驗證數據的完整性,可以發現傳輸或寫數據時是否發生錯誤;數據塊尾作為塊間隔出現,用于防止某數據塊發生錯誤或丟失時對解析上下文的影響。
[0019]數據幀的每個子幀中,“有效性字”的第一位取值代表所在子幀的有效性;第二到九位標識錯誤數據位置;第十到十二位為錯誤代碼,對應不同的錯誤原因,由用戶根據具體應用定義。
[0020]本發明具有以下優點:
[0021]本發明可以增強飛行數據的保密性,提高飛行數據在加密、下載過程中的效率,并且成本低,易實現。
【專利附圖】
【附圖說明】
[0022]圖1為本發明在實際應用時的具體階段流程。
[0023]圖2為本發明中記錄文件的存儲結構。
[0024]圖3為本發明中數據記錄(數據幀)的具體存儲結構。
【具體實施方式】
[0025]如圖1所示,本發明的整個流程依據具體設備的飛行數據采集起始點和停止點被分為三個階段,起始點之前為采集前準備階段,起始點到停止點之間為飛行數據采集階段,停止點之后為飛行數據下載階段。各階段分流程示例如下。
[0026]一、采集前準備階段
[0027]a)設備在機上隨機生成一個AES加密算法的密鑰;
[0028]b)使用飛機所屬公司或機構的數字證書中的公鑰對隨機生成的AES密鑰加密;
[0029]c)將經過證書加密的AES密鑰寫入飛行數據記錄文件。
[0030]首先,由于每個飛行架次用于加密飛行數據的AES密鑰都是隨機生成的,所以增加了飛行數據的破譯難度;其次,AES加密算法是對稱加密算法,加密效率高,適合大量數據加密,但密鑰交換不方便、風險大,本發明使用AES加密算法加密數據,使用數字證書加密AES密鑰,既保證了高加密效率又保證密鑰交換過程安全;另外,將加密密鑰作為飛行數據記錄的一部分寫入文件,方便文件傳輸和管理。
[0031]二、飛行數據采集階段
[0032]a)設備(記錄器)不斷采集飛行數據并存入內存;
[0033]b)每當內存中的飛行數據大小達到48KByte時,設備會對這些數據進行壓縮;
[0034]c)壓縮完成后,設備會對壓縮后的數據進行AES加密;
[0035]d)將加密好的數據寫入記錄文件中;
[0036]e)重復b)至d)步,直至達到設備要求的停止條件。
[0037]本發明對記錄文件的存儲結構進行了相應的優化,如圖2所示,記錄文件分為密鑰部分和數據部分:
[0038]1、密鑰部分,包含用于加密數據的對稱加密密鑰DataKey,但是DataKey本身是被加密的,加密DataKey采用航空公司的數字證書中的公鑰PubKey,所以在采集前準備階段只有航空公司才可以使用對應的私鑰PriKey解密密文看到數據加密密鑰DataKey。這樣的設計在使DataKey方便傳輸的同時也保證傳輸的安全性。
[0039]2、數據部分,由若干數據塊組成,每個數據塊又分為數據塊頭、數據和數據塊尾三部分:
[0040]2.1數據塊頭,數據塊頭包括CRC校驗和以及數據長度信息。其中CRC校驗占4字節(CRC校驗使用滿足ARINC665-3的CRC32算法),校驗的范圍為所屬數據塊的數據,用于驗證數據的完整性,可以發現傳輸或寫數據時是否發生錯誤;數據長度信息占4字節,記錄所屬數據塊中數據的長度,由于固定長度的數據幀經過壓縮后會變得非定長,所以為了解析數據需要在頭信息中指明之后緊隨的數據的大小。
[0041]2.2數據,由固定數量的經過壓縮、加密的數據幀組成。用于加密數據幀的密鑰即記錄文件密鑰部分被加密的內容(DataKey)。數據加密采用對稱加密技術以保證加密效率,所以解密數據時也使用該密鑰。
[0042]數據幀是本發明存儲方法的基礎單元,為了使應用本發明的設備更具通用性,本實施例采用滿足ARINC717標準的數據幀,并在標準的基礎上擴展定義特殊的字或位以及填寫方式。數據幀格式如圖3所示。
[0043]圖3所示數據幀格式滿足ARINC717的要求,即每個數據幀由四個子幀構成,子幀每秒產生一個,每個子幀包含64、128、256或512個字(可根據需要擴展到1024或更多),字大小為12位,每個子幀的第一個字是同步字,其他字為用戶定義字。在此基礎上,本實施例對數據幀做出了擴展定義,包括:
[0044]2.2.1每個子幀的第二個字為“有效性字”。其中每個“有效性字”的第一位取值代表所在子幀的有效性;第二到九位(共八位)標識錯誤數據位置,如在64個字的子幀中,“有效性字”第二位取值為I代表該子幀的前八個字中存在無效數據,“有效性字”第三位取值為I代表該子幀的第九到十六字中存在無效數據,以此類推;每個“有效性字”的第十到十二位為錯誤代碼,對應不同的錯誤原因,由用戶根據具體應用定義。
[0045]2.2.2每個數據幀的第一個子幀的第三個字為“幀計數字”,即“Frame Counter”。該字由十進制O到4095循環計數,每產生一個新數據幀該字加一,如此可以標記出短時間內(4.5小時)的丟幀情況。
[0046]2.2.3特殊采樣周期的參數記錄。由于ARINC717規定的數據幀以四秒為周期循環產生,數據子幀每秒產生一個,所以本實施例建議用戶不將參數的采樣周期設置為奇數秒,但仍提供這類參數以及采樣周期大于四秒的參數的記錄能力。本實施例規定記錄這些參數的字的最低位為“參數的有效性位”,并且這些參數的有效性不影響所在子幀的“有效性位”取值,當生成某一子幀包含這類參數但并不是該參數采樣時間的時,只需將“參數的有效性位”置為無效即可。如:參數“P”的采樣周期為8秒,被分配在每個數據幀的第四子幀記錄,那么在第4秒、12秒等時刻的第四子幀需要將這個參數的“參數的有效性位”置為無效,在第8秒、16秒等時刻的第四子幀需要將這個參數的“參數的有效性位”置為有效,并填充參數值。
[0047]2.2.4占多個字的參數。當出現某參數需占位大于12個時,本實施例規定將參數值與所占位低位對齊寫入,高位剩余則用“O”填充。如二進制數“10101010101010”占14位,則寫入兩個字,結果為“000000000010 101010101010”。
[0048]2.2.5離散量。由于離散量占用位數少,本實施例規定一個字可以包含多個離散量參數。
[0049]2.3數據塊尾,作為塊間隔出現,用于防止某塊數據發生錯誤或丟失時對解析上下文的影響。塊間隔大小為12字節,值為16進制的“55AAAA5555AAAA5555AAAA55”。
[0050]以數據塊為單位處理數據,在數據被寫入文件之前就完成對數據塊的壓縮和加密處理,如此,減少了飛行結束后飛機對記錄文件的處理時間,可以直接將文件下傳;另外,數據在被寫入文件前已被加密,數據明文是不可見的,增強了保密性。
[0051]三、飛行數據下載階段
[0052]a)地面設備通過無線網絡、有線網絡、USB接口或SD卡等方式將飛行數據記錄文件下載至地面分析設備;
[0053]b)解析、分別提取出文件中的密鑰部分和數據部分;
[0054]c)地面分析設備使用飛機所屬公司或機構的數字證書私鑰解密密鑰部分,得到AES密鑰;
[0055]d)地面支持設備使用AES密鑰解密數據部分,得到飛行數據內容。
【權利要求】
1.一種通用飛行數據的加密方法,包括以下步驟: 1)隨機生成AES加密算法的密鑰,使用與地面系統私鑰對應的證書加密隨機生成的密鑰,并將經過加密的密鑰寫入記錄文件中; 2)采集所需飛行數據的值,并將其寫入內存; 3)每當內存數據到達設定的容量時,則將內存中的數據做壓縮、加密處理,加密處理過程中使用AES算法,使用步驟I)中所述的隨機生成的密鑰; 4)將經過壓縮、加密處理的數據寫入所述記錄文件中; 5)重復進行步驟2)到步驟4)直至記錄停止條件觸發; 6)飛機停靠機場后,將機上存儲的記錄文件下傳至地面; 7)地面使用證書私鑰解密出步驟I)中所述的隨機生成的密鑰,再用該密鑰解密密文。
2.根據權利要求1所述的通用飛行數據的加密方法,其特征在于: 步驟I)中將經過加密的密鑰寫入記錄文件的最前端; 步驟2)中是按照以下設定的格式生成數據幀:數據幀采用滿足ARINC717的存儲格式,每個數據幀由四個子幀構成,每個子幀的第一個字是同步字,第二個字為“有效性字”;每個數據幀的第一個子幀的第三個字為“幀計數字”(Frame Counter);其他字存儲數字化飛行參數; 步驟4)是將多個數據幀經過壓縮、加密處理作為數據部分,然后在首尾分別加上數據塊頭和數據塊尾,組成一個數據塊,置于步驟2)寫入的密鑰之后; 重復進行步驟2)到步驟4)直至記錄停止條件觸發,這個過程中各個數據塊按照生成時間順序首尾相接寫入記錄文件中,從而完成數字化飛行參數的存儲。
3.根據權利要求1所述的通用飛行數據的加密方法,其特征在于:每一個數據塊中,數據塊頭包括CRC校驗和數據長度信息,其中CRC校驗的范圍為所屬數據塊的數據,用于驗證數據的完整性,可以發現傳輸或寫數據時是否發生錯誤;數據塊尾作為塊間隔出現,用于防止某數據塊發生錯誤或丟失時對解析上下文的影響。
4.根據權利要求1所述的通用飛行數據的加密方法,其特征在于:數據幀的每個子幀中,“有效性字”的第一位取值代表所在子幀的有效性;第二到九位標識錯誤數據位置;第十到十二位為錯誤代碼,對應不同的錯誤原因,由用戶根據具體應用定義。
【文檔編號】H04L9/32GK104468122SQ201410737464
【公開日】2015年3月25日 申請日期:2014年12月5日 優先權日:2014年12月5日
【發明者】張楊陽, 孔德岐, 張軍才, 周斌, 胡宇凡, 茹偉 申請人:中國航空工業集團公司第六三一研究所