余章蓉 王友昆 時盛春



摘 ?要: 不同坐標系成果之間的轉換是測量工作中必不可少的環節。基于轉換參數保密的需求,如何確保轉換參數不被泄密是坐標轉換過程中需要解決的問題。本文基于新一代加密狗的特點,提出利用加密狗對轉換參數加密和存儲,并將坐標轉換或混淆的代碼移植到加密狗內,實現了省級海量參數的加密、管理和調用,有效杜絕了轉換參數和坐標轉換過程的泄密,大大提高了保密強度。
關鍵詞: 坐標轉換;參數;加密狗;算法
中圖分類號: P209 ? ?文獻標識碼: A ? ?DOI:10.3969/j.issn.1003-6970.2020.01.018
本文著錄格式:余章蓉, 王友昆, 時盛春, 等. 基于加密狗的坐標轉換參數加密方法研究與實現[J]. 軟件,2020,41(01):8590
【Abstract】: The transformation between different coordinate system results is an indispensable link in surveying work. Based on the requirement of confidentiality of conversion parameters, how to ensure that conversion parameters are not leaked is a problem to be solved in the process of coordinate transformation. Based on the characteristics of the new generation of dongle, this paper proposes to use the dongle to encrypt and store the conversion parameters, and transplant the coordinate conversion or confused code into the dongle. It realizes the encryption, management and invocation of provincial massive parameters, effectively eliminates the leakage of conversion parameters and coordinate conversion process, and greatly improves the security intensity.
【Key words】: Coordinate transformation; Parameter; Dongle; Algorithm
0 ?引言
隨著國家關于2018年7月全面使用2000國家大地坐標系要求的實施,各類國土資源空間數據均需要實現向2000國家大地坐標系轉換[1]。雖然2000國家大地坐標系已經全面啟用,但實際工作中1954年北京坐標系、1980年西安坐標系、2000國家大地坐標系以及基于以上坐標系統建立的獨立坐標系之間的相互轉換需求仍然存在。測繪地理信息數據是涉及國家安全的基礎性和戰略性資源[2]。根據《測繪管理工作國家秘密目錄》的規定,國家大地坐標系、地心坐標系以及獨立坐標系之間的相互轉換參數屬于絕密級的保密范圍[2]。針對坐標轉換參數的保密方法,部分學者做了相關研究工作[3-7],但保密的方法還可待進一步提高。本文采用將坐標轉換參數加密存儲在加密狗,通過調用加密狗的加密或解密函數來實現轉換參數的加密或解密,能夠有效阻斷轉換參數的外泄,提高了轉換參數的保密強度。
1 ?加密狗
1.1 ?基本原理
加密狗是利用儲存在硬件中的信息對軟件進行加密保護,軟件通過特殊指令對USB接口的加密狗讀取和校驗[8],由于加密狗硬件不易復制,保護性能較好,在防止軟件盜版方面應用較為廣泛[9-13]。加密狗的基本原理是軟件執行過程中不斷對硬件狗執行訪問或讀寫等操作,確認軟件操作的合法性和有效性,以此來達到保護軟件版權的目的。目前,加密狗的發展已經發展到第五代產品,不但能夠提供軟件版權保護的功能,而且還能提供幾十至幾百Kb的存儲空間,以及獨立的芯片運算能力,可以將一些關鍵的算法或敏感數據植入加密狗內,利用加密狗芯片讀寫數據、執行算法、返回結果,從而實現對關鍵算法和敏感數據的保護。
1.2 ?深思精銳5
深思精銳5加密狗(以下簡稱精銳5)是北京深思數盾科技股份有限公司生產的新一代硬件加密狗,具有安全性高、運算速度快、存儲空間大、內置加密算法全等優點。
(1)安全性方面。精銳5基于PKI 的現代安全體系,采用ARM SC300 安全智能卡芯片,通過CC EAL5+安全認證,可有效防止硬件剖片及克隆,并通過為每一位開發者定制的SDK技術、主動防御技術以及代碼移植技術,有效地保證開發者的使用過程中的數據流均無法查看、偽造、篡改、冒用。
(2)運算速度方面。精銳5采用32位ARM芯片,主頻高達24Mhz,執行速度可達50DMIPS,可以執行復雜的任務算法,大大提高了核心代碼移植到加密狗內的運算速度。
(3)存儲空間方面。精銳5提供了高達512K的存儲空間,能夠存儲更多的用戶數據,可將敏感的數據存儲在指定區域,由于只能用加密狗ID打開存儲空間,大大提高了參數存儲的保密性。
(4)內置加密算法。精銳5內置了對稱算法(DES、TDES、AES)和非對稱算法(RSA、ECC),能夠快速利用不同算法實現對信息的加密和解密,為開發者加密和解密提供了較大的便利。
1.3 ?加密算法
常用的加密算法包括對稱加密算法、非對稱加密算法、散列(Hash)算法等[14-16]。對稱算法主要包括數據加密標準DES(Data Encryption Standard)、三重數據加密標準TDES(Triple DES)[17]、高級加密標準AES(Advanced Encryption Standard)等,優點是運算速度快、資源消耗低,缺點是使用相同密匙進行加密和解密,無法對密匙進行有效管理,常用于加密大量數據的場合,對稱算法示意如圖1。
非對稱算法主要包括RSA、數字簽名算法DSA(Digital Signature Algorithm)、橢圓曲線密碼編碼學ECC(Elliptic Curves Cryptography)等,優點是安全性高,采用公鑰加密和私鑰解密,密匙的管理比較容易,缺點是運算速度慢、資源消耗高,一般用公鑰加密和私鑰解密,常用于加密小數據量場合或用于數據簽名[18]。
散列算法是一種單向算法,即通過算法對目標信息生成一段特定長度的唯一的Hash值,卻不能通過這個Hash值重新獲得目標信息。因此,散列算法常用在不可還原的密碼存儲、信息完整性校驗等。
加密的數據量較少時,可以直接采用非對稱算法進行加密。加密數據較多,而又需要較高的安全性時,可以采用非對稱加密算法管理對稱算法的密鑰,然后用對稱加密算法加密數據,這樣既實現快速加密又實現了安全管理密鑰[19]。精銳5加密狗SDK提供了DES、TDES、RSA算法API接口,可以參考其函數文檔調用對應的API接口實現轉換參數的加密和解密,見表1。
2 ?加密設計和實現
本文采用精銳5及其SDK開發包實現坐標轉換軟件的保護,以及對轉換參數的加密、存儲和解密。
2.1 ?加流程
為保證坐標轉換參數的保密,對大數據量、線下的坐標轉換應用場景為專人、專機進行轉換,可采用軟件與加密狗對應,將轉換參數和密匙存儲在加密狗中,并將參數的加密、解密、坐標轉換等功能放到加密狗中實現。參數加密的流程包括讀取文本參數、參數加密和參數寫入,參數解密包括讀取狗內參數、參數解密、坐標轉換,具體流程見圖3。
(1)打開加密狗驗證。利用深思5進行各項功能操作,均應先打開加密狗驗證其授權情況,確認其授權正確性和操作權限,確保其能夠正確使用,有效保護軟件。
(2)讀取文本參數。由于存在多個轉換參數,因此加密前,需要讀取存儲多個轉換參數的字符文件,并按設計的結構長度轉換為對應的字節流用于加密。
(3)參數加密。利用加密狗自帶的加密算法,對需要加密的參數字節流進行加密,得到加密后的字節流。
(4)參數寫入。將加密后的字節流,寫入加密狗的指定區域。
(5)讀取狗內參數。讀取加密狗的指定存儲區域的加密字節流。
(6)參數解密。利用加密狗自帶的解密算法,對加密的字節流進行解密,得到解密的轉換參數。
(7)坐標轉換。利用解密的轉換參數,并利用相應的轉換模型進行坐標轉換,坐標轉換模塊可以在軟件內實現也可以在加密狗內實現。
2.2 ?參數存儲
常用的坐標轉換模型包括布爾莎七參數模型、三維七參數轉換模型、二維七參數轉換模型、三維七參數模型、二維四參數轉換模型、多項式擬合模型等[20]。本文以區域坐標轉換中應用較為廣泛的平面四參數轉換模型(二維四參數轉換模型)和布爾莎七參數模型為例進行說明。
轉換參數的加密存儲,簡便的方法是將所有參數轉換為字符,對字符加密后直接寫入加密狗中。當存在多種類型及多個轉換參數,而加密狗存儲空間有限時,這種方式不能達到有效管理和利用轉換參數目的。因此,首先應對其存儲的數據類型進行分析,以便節約存儲空間和提高存儲效率。
一個轉換參數包括源坐標系名稱、目標坐標系名稱、參數類型、平移參數、旋轉參數、尺度參數等。平移參數、旋轉參數、尺度參數可以采用單精度浮點型(float)或雙精度浮點型(double)數值類型存儲,參數類型可以采用無符號短整型(ushort)存儲。坐標系名稱如果采用字符(string)存儲,占用的存儲空間較大,并且有冗余,因此可以對不同地區、不同坐標系名稱建立索引的方式減少數據冗余。如昆明地區的四套坐標系的相互轉換關系有6種組合,如果按照字符存儲將占用96個字節,如果采用索引的方式僅占用24個字節,實例見表2
平移參數的單位為米,單精度浮點型即可滿足其有效小數位(3位)的要求。對于單精度浮點型有效小數位7位無法滿足旋轉參數和尺度參數小數位精度的情況,可以對其放大數倍(如1E6)后存儲,調用轉換時再除以相應的倍數。平面四參數的邏輯結構見表3,一個平面四參數將占用22字節。
布爾莎七參數的邏輯結構見表4,一個布爾莎七參數將占用30字節。
以云南省129個縣(市、區)坐標轉換參數存儲為例,每個縣市區均有2000國家大地坐標系、1954北京坐標系、1980西安坐標系、地方坐標系四套坐標系的相關轉換參數,包括平面四參數和布爾莎七參數,其占用的存儲空間為129×6×52=40248字節,約40Kb的存儲空間。加密狗內存儲和調用時,通過參數的數量及各參數固定占用的存儲空間進行索引,能夠實現快速的存儲和調用。
2.3 ?加密算法
本文采用對稱算法和非對稱加密算法相結合的方式對轉換參數進行加密。首先,采用數據加密標準TDES對稱算法對轉換參數加密,密匙由坐標轉換人員輸入的密碼轉換而來;然后,采用RSA非對稱算法對轉換參數加密,私鑰存放在加密狗中。調用加密狗解密參數時,不但需要加密狗調用私鑰解密,還要輸入坐標轉換人員知曉的密碼才能解密參數用于坐標轉換。這種方式確保了加密狗遺失,轉換參數泄密的問題,加密流程圖4。
對稱加密的密匙由用戶密碼生成,確保只有知道密碼的坐標轉換人員才能進行參數的加密和使用。非對稱加密RSA字節數一般為1024位,當待處理的數據超過這個長度時需要對其分段處理。非對稱加密的公鑰和私鑰密匙對可在加密前進行重置,確保生成不同的密匙。以上密匙的生成,還可以同使用電腦的硬件進行綁定,確保加密狗在指定的電腦上使用。轉換參數的解密過程則相反,不同的是非對稱算法采用加密狗的私鑰進行解密。
此外,精銳5支持代碼移植功能,即可以將軟件中最重要的代碼從軟件中“挖走”并移植到精銳5硬件內部,當軟件中需要執行此段代碼時,則通過API調用精銳5硬件內移植過去的代碼,精銳5通過這種方式實現了對重要代碼的有效保護。
為避免坐標參數在電腦內存中被讀取,可以將坐標轉換及坐標混淆的函數方法移植到加密狗內。坐標轉換函數直接讀取對應的轉換參數,傳入需要轉換的源坐標值,轉換后輸出目標坐標值,這種方式進一步提高了轉換參數的保密性。
2.4 ?軟件實現
本文采用Visual studio2012開發平臺,C#語言及.net Framework,利用精銳5提供的SDK開發套件提供的豐富API函數接口,在坐標轉換系統基礎上,快速實現了對多個類型和多個轉換參數的加密、解密、存儲、調用及管理,軟件界面如圖5。
如圖5所示,軟件對云南省129個縣(市、區)坐標轉換參數按照區域、源坐標名稱、目標坐標名稱同加密狗內存儲的加密轉換參數通過索引建立聯系。管理員點擊參數文件寫入狗內即可實現轉換參數的加密;用戶只需要選擇轉換區域、源坐標名稱、目標坐標名稱,以及選擇轉換方式,點擊坐標轉換即可實現坐標的轉換工作。加密、解密以及坐標轉換的過程均在加密狗內進行,轉換參數不會顯示出來,并且計算的過程均在加密狗內完成,保密的安全性較高。
3 ?結語
本文根據加密狗的存儲便捷、代碼移植、高度安全等特點,提出利用加密狗實現轉換參數加密、存儲、解密、調用的思路。通過設計轉換參數的數據結構,大大節約了轉換參數的存儲空間,實現了多種類型和多個轉換參數在加密狗內的存儲,解決了加密狗存儲空間不足的問題。同時,將參數加密、存儲、解密、調用的全過程在加密狗內得到了實現,杜絕了轉換參數和坐標轉換過程的泄密,大大提高了保密強度,有效實現了轉換參數的保密需求。
參考文獻
[1] 張海濤, 紀敏. 平面四參數模型下的城市平面坐標與2000國家大地坐標轉換方法研究[J]. 測繪通報, 2018(07): 74-77.
[2] 劉波, 嚴俊, 姚茂華. 地理信息安全加密系統的實現與應用[J]. 測繪通報, 2017(02): 106-108.
[3] 吳國梁, 張黎, 高翔, 等. 基于ArcGIS的坐標轉換參數保密研究與應用[J]. 地理空間信息, 2018(11): 82-83.
[4] 韓聰, 劉建國, 梅偉長. 坐標轉換及參數加密軟件設計與實現[J]. 長春師范大學學報, 2017(06): 85-87.
[5] 李裕聰. CORS系統坐標轉換方案的保密設計[J]. 中國水運, 2016(07): 39-40.
[6] 李前斌, 林賢斌, 陳金榮. 基于Android下二維碼的CORS坐標轉換參數保密傳播方法[J]. 測繪通報, 2014(04): 136-137.
[7] 秦寬, 高軍虎. 基于CORS用戶端的實時坐標和高程轉換與加密技術[J]. 鐵道勘察, 2015(04): 24-27.
[8] 徐濤, 文福安. 基于USBKey的考試系統安全的設計與實現[J]. 軟件, 2016, 37(01): 4-8.
[9] 徐濤. 基于加密狗保護軟件應用的探討[J]. 電腦知識與技術, 2016, 12(07): 81-83.
[10] 張鵬, 南洪國, 滕林, 等. 工控軟件USB加密狗的設計[J]. 工程與試驗, 2013, 53(04): 72-74.
[11] 滕廣超, 郎建軍, 杜奇才, 等. 基于STM32的硬件狗設計與實現[J]. 微處理機, 2013, 34(06): 70-72.
[12] 孫軍, 談鵬圖, 林文興, 等. 加密與密文檢索云服務系統[J]. 軟件, 2018, 39(10): 92-96.
[13] Jing Z. Research on Data Encryption Technology in Network Communication Security[J]. computer engineering & Software, 2019, 40(8): 95-97. (趙靜. 網絡通信安全中數據加密技術研究[J]. 軟件, 2019, 40(8): 95-97. )
[14] 李青, 陳靚, 馮梅, 等. 淺析幾種典型數據加密算法[J]. 信息系統工程, 2017(11): 148-149.
[15] 左曉靜, 譚會君. 常用數據加密算法分析及比較[J]. 漯河職業技術學院學報, 2017, 16(02): 27-29.
[16] 向志華, 賴小平. 基于混沌映射的散列函數加密算法分析及設計[J]. 軟件, 2019, 40(08): 66-69.
[17] 周悅, 文毅, 楊旭, 等. 基于3DES密碼算法的差分能量分析攻擊方法的研究[J]. 軟件, 2019, 40(09): 1-7.
[18] 吳明航, 許協, 阿超. DES_RSA及其混合算法的加密速度研究[J]. 網絡安全技術與應用, 2014(07): 117-119.
[19] 陳僑川. 一種基于DES和RSA算法的混合加密算法[D]. 云南大學, 2015.
[20] CH/T 2014―2016《大地測量控制點坐標轉換技術規范》概述[J]. 測繪標準化, 2017, 33(03): 31.
[21] 余章蓉, 董國橋, 王友昆. 基于云南省城市管線數據庫坐標轉換的實現[J]. 測繪與空間地理信息, 2017(10): 184-187.