馮建祝
(長春大學 管理學院, 長春130022)
利用DES算法對會計數據進行加密處理研究
馮建祝
(長春大學 管理學院, 長春130022)
為了妥善管理會計信息化環(huán)境下的數據,保證信息安全,本文主要研究如何將DES加密技術運用于會計數據管理,介紹利用DES算法加密和解密單個分組的流程,DES密文的文本化處理。探討了會計數據加密解密處理,涉及賬套數據庫中文本字段的加密處理、會計軟件導出數據的加密處理。說明了利用DES算法對會計數據加密應注意的問題,應該保證密鑰字符的有效性,防止密鑰丟失或泄露,給出成批較短數據加密規(guī)律性解決辦法。
DES;會計數據;文本;加密
會計數據包括會計憑證、賬簿、報表以及相關基礎數據,信息化環(huán)境下會計數據以紙質或者無紙化形態(tài)存在,其中,無紙化的會計數據輸入、處理、輸出管理過程中,如何保證其安全,是需要開發(fā)、管理和使用人員認真思考的問題。當前,可用的加密算法較多,比如MD5、RSA、DES、AES和DSA等等,其中,DES(數據加密標準)加密算法是一種對稱密碼加密方法,1972年由美國IBM公司研制推出,是較成熟的經典算法。相對而言,DES加密速度快、算法簡單實用,兼顧安全性和效率需求。本文探討將DES加密技術應用于會計數據處理,在保證效率的前提下,實現數據安全管理目標。
DES使用密鑰,對數據劃分為定長區(qū)塊。DES加密處理時,盡可能將密鑰特征分散到整個數據處理中,同時,數據編碼最大化影響密鑰整體,從而實現無法統計密鑰規(guī)律的目的,提高破解難度。一般情況下,除了用窮舉法,沒有其他有效方法對DES加密的數據進行破解。
運算前,需要準備的基礎數據是7字節(jié)(56位,加入校驗位后長度為64位)密鑰、8字節(jié)(64位)數據和運算方式(加密或解密),DES提供初始置換表(64位)、逆置換表(位)、擴展置換表(48位)、S盒(32位×16次)、P置換表(32位)、置換選擇1(56位)、置換選擇2(56位)以及16次左移位數等數據,這些數據被寫入Visual FoxPro過程,供其他自定義函數調用。
運算時,以二進制位為基本處理單位。本文以Visual FoxPro作為高級語言工具,完成DES原理的程序設計,其中的二進制位在該語言處理中,無法直接進行二進制數據處理,故采用字節(jié)或數組方式替代實現。調用函數GetDesArr時,給出要調用的數組數據類型,存放數據的數組地址,該函數將數據表存入數組,將元素個數返回給調用者。
(一)加密單個分組
已知64位明文,64位密鑰的情況下,就可以做DES加密處理。首先,根據初始置換表,完成明文的初始置換,初步打亂明文數據位序。再將置換后的64位數據,劃分為左右兩組,每組32位數據,準備進一步處理。然后,對置換后的數據進行16輪迭代。在每一輪迭代中,依據擴展置換表,將每組32位數據擴展置換成48位數據,并且,通過子密鑰與48位數據進行xor運算。運算模型公式為:
R1=L0xor f (R0,k1),其中,R1表示右側分組數據的當前輪次運算值,L0、R0表示上一輪次運算結果,K1為子密鑰。再利用S盒置換表,將48位數據置換成32位。再參照P置換表進行P置換處理,并對左32位數據進行xor運算,模型公式為:
f(R,K)=P(S(K xor E(R))),其中,f(R,K)為轉換函數,P()代表P置換操作,S()代表S盒轉換操作,E(R)表示對右側分組進行擴展置換操作。
新的64位數據還要利用逆置換表進行置換,逆置換完成后,明文加密為密文。
(二)解密單個分組
解密過程與加密過程相似,依次經歷初始置換、16輪迭代、擴展置換、與子密鑰XOR運算、S盒置換、P置換、XOR左32位數據以及逆置換操作。在逆轉換前,需要準備好64位密文和64位密鑰,只有密鑰與加密時的密鑰相同,才能正確解密。
無論是加密還是解密,在處理前,都需要對密鑰進行處理,制作出16行×48列子密鑰數組數據。
信息化環(huán)境中,數據庫中的會計數據類型主要有文本、數值、日期和邏輯類型等,從會計軟件中導出的數據如果保存為TXT文件,則為純文本類型數據,保存為其他類型的文件,一般是二進制特征的數據。
明文加密成DES密文以后,原來的文本可能變成非文本類型,給數據保存或網絡傳輸帶來問題。為解決這一問題,可以將密文再進行處理,轉化為文本類型。以字節(jié)為單位,每個字節(jié)轉換為對應ASCII碼的16進制表示。例如,字符“A”轉換后為二字符“41”,回車換行符轉換為四字符“0D0A”。文本化處理為文本類型數據保存和傳輸帶來便利的同時,也導致數據長度增加一倍,如果保存在原來的數據表中,需要在設計表結構時,考慮加密數據長度的可容納性。文本化處理的密文解密處理時,要將密文中每兩個字符分為一組,解析為對應的十六進制值,還原DES密文數據塊,再進行DES解密,密文值與文本相互轉換關鍵函數為十六進制轉換這對應字符,對應字符轉換為十六進制。
根據安全需要,文本化處理過程中也可以使用其他加密方法,對密文數據進行二次加密,進一步提高加密安全等級。簡單的二次加密方法如改變字符位次,對數據位進行Xor處理等,都能夠實現加密功能,并且,加密效率高,與DES共同起作用,保證數據安全。
會計軟件為使用者提供了多種安全措施。比如:通過用戶名和密碼保護會計數據,對不同用戶,授予不同的權限。為了滿足個性化需求,會計軟件大多提供二次開發(fā)接口,允許用戶導出會計數據,甚至直接訪問賬套所屬數據庫,該功能可能成為數據泄露渠道。在軟件開發(fā)時,對數據庫內關鍵數據或者導出數據進行DES加密,是軟件設計者可考慮的安全措施之一。
(一)賬套數據庫中文本字段的加密處理
賬套中單位基本信息、會計科目體系數據、用戶名稱、身份證號、聯系方式,客戶和供應商信息,存貨名稱等都屬于重要的內容,一旦泄露,將會給單位或個人帶來安全風險。開發(fā)時,通過底層的DES加密處理,確保數據即便被非法使用者獲取,也只能是密文,無法知道明文內容。
字段經DES加密,值發(fā)生顯著變化。例如,密鑰“12345678”,密文做文本化處理,明文字符數不是8的倍數時,用空格補足。科目編碼“1001”和“100201”的密文分別是“98b843260952f3b1”和“31e46014dbf66dcd”;科目名稱“庫存現金”密文是“d171c6dbb165019f”;賬套啟用日期“2016年07月01日”的密文是“97bd605ee088362016d675558ac2242f”;金額“1000.00”密文“77e70225251d7487”。較特殊的字符串加密,如“00000000”,密文是“5f6a7d528e394f39”,從字面上看,密文與明文無法找到相關的規(guī)律性。
密文保存時,變長字符型(VarChar)數據可以直接寫回原來的字段,定長字符串或其他類型數據的字段,則需要另外設置VarChar字段保存,不進行密文的文本化處理情況下,可以設置Binary型字段保存密文。
雖然DES加密算法從速度上優(yōu)于其他加密方法,但是,嵌入軟件內的加密處理仍然需要耗費一定的時間,而管理軟件數據量大,時效要求高,所以,盡量只選擇對安全要求高的字段做加密處理。
(二)會計軟件導出數據的加密處理
會計軟件導出數據一般以文件形式單獨存放,文件類型有多種,常見的有:文本文件、Excel文件、Word文件或者Vfp表(Dbf)文件等等,也可能是會計軟件自定義的文件格式。例如,用友ERP-U8的.Rep報表文件。除自定義格式文件外,其他類型的文件都能夠被第三方軟件打開使用。由于第三方軟件的通用性,容易出現數據外泄風險,對于涉密數據,可以對數據文件進行DES加密處理。
對于Excel工作簿或者Vfp的Dbf表,既可以對表內局部數據加密,也可以對整個文件加密,對于文本文件、Word文件或者會計軟件自定義格式文件,可以對整個文件進行DES加密處理。局部加密時,關聯軟件可以打開密文形態(tài)的文件,此時,一旦對密文進行手工編輯,將導致無法解密的后果,這就要求有適當的保護措施。特別重要的機密數據,利用多重手段以保證數據信息安全。DES加密的同時,Word、Excel軟件自身的加密手段也可以使用。壓縮軟件對獨立文件壓縮處理時,同樣可以施加安全密碼。
會計數據的加密處理,可以在軟件設計階段完成,將加密功能嵌入軟件內部,這樣做能夠提高加密效率和可靠性。以這種方式加密,密鑰可以由用戶管理或者系統內設固定值。已經運行的會計軟件,在沒有得到軟件開發(fā)商加密升級的情況下,也可以由第三方開發(fā)數據加密工具軟件,外掛在會計軟件上執(zhí)行,這種方式也可以保證數據具備加密特性,但是,要注意兩個軟件的匹配,尤其是會計軟件升級后,加密軟件的適應性問題。
(一)保證密鑰字符的有效性
DES密鑰一般為8個字符,實際只用到64數據的56位,每個字符的最后一個二進制位被定義為校驗位,未參與DES運算。實際應用中,不應使用ASCII值128作為密鑰值,保證DES算法密文的有效性。
DES采用8字符密鑰,會給用戶帶來不良體驗。針對這種情況,可以考慮密允許鑰字符數可變。當普通用戶設置的字符數小于8時,由程序自動補空格。當用戶設置的密鑰字符數大于8時,按照字符的二進制位,等間距選擇64位二進制位,其他未用的二進制位丟棄掉。
(二)防止密鑰丟失或泄露
密碼忘記或丟失將導致數據無法還原,造成數據損失。建立嚴格密碼管理制度,并且,要嚴格監(jiān)督用戶按制度執(zhí)行,做到數據的安全可靠。同時,將密鑰放入程序內或者加密的同一個數據庫中,會帶來密鑰泄露的風險。應該將密鑰另外妥善存放,提高加密數據的安全可靠性。
如果所有的會計數據采用相同的密鑰,泄露的密鑰會導致所有數據泄密。最好將會計數據分類,針對不同類型數據采用不同密鑰。一般來說,會計數據處理具體周期性特點,比如,憑證、日記賬和日報表每天都要處理,會計賬簿和報表每月輸出一次??梢葬槍γ刻於甲兓臄祿O置一個密鑰,再對每月變化一次的數據另設置一個密鑰。同時,還應該定期更換密鑰,并對原有密鑰做好存檔保管,保證任何時候,合法用戶都可以解密需要的內容。
(三)成批較短數據加密可能找到規(guī)律性
成批較短數據使用相同密鑰加密,會產生有規(guī)律的數據密文,出現安全隱患。比如:數據庫中的BIT型字段數據,只有一個二進制位,每個數據本身無法實現DES加密,數值型或日期字段明文加密后失去數值或日期類型特征,不能再保存到原來的字段中。較短數據進行DES加密時,可以通過另存成其他類型的字段,或者采用多密鑰加密方法避免有規(guī)律密文出現。
多密鑰應用時,制定一個可行的規(guī)則??梢钥紤]按照記錄的關鍵字區(qū)分密鑰,當關鍵字發(fā)生變化時,同步更新映射關系。也可以考慮在密文中附加標記的辦法。比如:密文串首加二個字符,尋找密鑰時,先將這二個字符轉換成十六進制值,以該值做為索引位置,到多密鑰表中索引位置提取密鑰。
(四)高級語言的效率影響加密功能的現實
本文采用的Visual FoxPro高級語言,從處理效率上看,完成加密與解密處理的效率較低,但是,數據處理效率高,自帶數據庫及數據表管理功能,適合對商品化會計軟件的二次開發(fā),在提取其他軟件會計數據時,又要考慮安全性問題,所以,在該語言中實現DES加密也是必要的。加密程序自主完成,更適合控制加密流程,或改進加密方法,對于部分字段數據的加密效率也可以接受的。如果對大量數據進行快速加密,可以考慮使用效率更高的語言,如:NET、C#、C、JAVA等,這些語言甚至內置了DES處理函數,實現加密處理更加方便。
綜上所述,DES加密技術是信息化環(huán)境中,會計數據安全保障的有力措施之一,適當使用,確保信息安全。由于會計數據輸入、處理和輸出的復雜性,多重安全手段運用也是必要的。在加密處理過程中,應該同時兼顧效率與安全。還應該看到,DES算法不是最優(yōu)的加密方法,隨著安全性更高、速度更快的加密算法的出現,必然會進一步促進會計信息化的安全管理水平的提高。
[1] 徐江濤,王運祿. 基于.NET的DES分組密碼的設計與應用[J].計算機與數字工程,2015(9):1647-1650.
[2] 溫泉,趙紅敏,郝曉東,等.一種高速高安全性的DES算法設計[J].微電子學與計算機,2014(12):164-167.
[3] 常種銘,游青山.DES對稱加密和解密算法的安全性應用[J].理論探討,2016(3):43-45.
[4] 吳明航.DES和RSA混合加密算法的研究[D].哈爾濱:哈爾濱工業(yè)大學,2013.
[5] 爨玉偉,阮曉宏.基于DES及其改進算法的文件加密系統[J].計算機技術與發(fā)展,2014(7):166-169.
[6] 李金良.針對DES加密的功耗分析攻擊[D].上海:華東師范大學,2014.
[7] 李靜.企業(yè)會計信息系統的風險及其防范[J].現代商業(yè),2015(3):239-240.
[8] 宋彪.企業(yè)會計信息系統安全性淺析[J]. 福建質量管理,2016(5):.
[9] 彭超然.大數據時代下會計信息化的風險因素及防范措施[J].財政研究,2014(4):73-76.
責任編輯:程艷艷
Research on Accounting Data Encryption Processing by DES Algorithm
FENG Jianzhu
(Management College, Changchun University, Changchun 130022, China)
To manage data in accounting information environment and ensure information security,this paper mainly studies how to use DES encryption technology in accounting data management, introduces the procedures of the single packet in encryption and decryption by DES algorithm and the text processing of DES ciphertext, and discusses the methods of accounting data encryption and decryption processing, concerning the encryption processing on text field in set accounting database and the encryption processing on the exporting data by accounting software. Moreover, it illustrates the problems that should be paid attention to when using DES algorithm in accounting data encryption, which requires to guarantee the validity of the key characters, prevent key from losing or betray, giving solutions to encryption regularity of batch shorter data.
DES; accounting data; text; encryption
2016-08-28
馮建祝(1967-),男,吉林雙遼人,副教授,主要從事會計信息化方面研究。
TP309
A
1009-3907(2016)12-0036-04