APP下载

利用DES算法对会计数据进行加密处理研究

2016-03-24冯建祝

长春大学学报 2016年12期
关键词:字段密文字符

冯建祝

(长春大学 管理学院, 长春130022)

利用DES算法对会计数据进行加密处理研究

冯建祝

(长春大学 管理学院, 长春130022)

为了妥善管理会计信息化环境下的数据,保证信息安全,本文主要研究如何将DES加密技术运用于会计数据管理,介绍利用DES算法加密和解密单个分组的流程,DES密文的文本化处理。探讨了会计数据加密解密处理,涉及账套数据库中文本字段的加密处理、会计软件导出数据的加密处理。说明了利用DES算法对会计数据加密应注意的问题,应该保证密钥字符的有效性,防止密钥丢失或泄露,给出成批较短数据加密规律性解决办法。

DES;会计数据;文本;加密

会计数据包括会计凭证、账簿、报表以及相关基础数据,信息化环境下会计数据以纸质或者无纸化形态存在,其中,无纸化的会计数据输入、处理、输出管理过程中,如何保证其安全,是需要开发、管理和使用人员认真思考的问题。当前,可用的加密算法较多,比如MD5、RSA、DES、AES和DSA等等,其中,DES(数据加密标准)加密算法是一种对称密码加密方法,1972年由美国IBM公司研制推出,是较成熟的经典算法。相对而言,DES加密速度快、算法简单实用,兼顾安全性和效率需求。本文探讨将DES加密技术应用于会计数据处理,在保证效率的前提下,实现数据安全管理目标。

1 DES工作原理

DES使用密钥,对数据划分为定长区块。DES加密处理时,尽可能将密钥特征分散到整个数据处理中,同时,数据编码最大化影响密钥整体,从而实现无法统计密钥规律的目的,提高破解难度。一般情况下,除了用穷举法,没有其他有效方法对DES加密的数据进行破解。

运算前,需要准备的基础数据是7字节(56位,加入校验位后长度为64位)密钥、8字节(64位)数据和运算方式(加密或解密),DES提供初始置换表(64位)、逆置换表(位)、扩展置换表(48位)、S盒(32位×16次)、P置换表(32位)、置换选择1(56位)、置换选择2(56位)以及16次左移位数等数据,这些数据被写入Visual FoxPro过程,供其他自定义函数调用。

运算时,以二进制位为基本处理单位。本文以Visual FoxPro作为高级语言工具,完成DES原理的程序设计,其中的二进制位在该语言处理中,无法直接进行二进制数据处理,故采用字节或数组方式替代实现。调用函数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列子密钥数组数据。

2 密文的文本化处理

信息化环境中,数据库中的会计数据类型主要有文本、数值、日期和逻辑类型等,从会计软件中导出的数据如果保存为TXT文件,则为纯文本类型数据,保存为其他类型的文件,一般是二进制特征的数据。

明文加密成DES密文以后,原来的文本可能变成非文本类型,给数据保存或网络传输带来问题。为解决这一问题,可以将密文再进行处理,转化为文本类型。以字节为单位,每个字节转换为对应ASCII码的16进制表示。例如,字符“A”转换后为二字符“41”,回车换行符转换为四字符“0D0A”。文本化处理为文本类型数据保存和传输带来便利的同时,也导致数据长度增加一倍,如果保存在原来的数据表中,需要在设计表结构时,考虑加密数据长度的可容纳性。文本化处理的密文解密处理时,要将密文中每两个字符分为一组,解析为对应的十六进制值,还原DES密文数据块,再进行DES解密,密文值与文本相互转换关键函数为十六进制转换这对应字符,对应字符转换为十六进制。

根据安全需要,文本化处理过程中也可以使用其他加密方法,对密文数据进行二次加密,进一步提高加密安全等级。简单的二次加密方法如改变字符位次,对数据位进行Xor处理等,都能够实现加密功能,并且,加密效率高,与DES共同起作用,保证数据安全。

3 会计数据加密解密处理

会计软件为使用者提供了多种安全措施。比如:通过用户名和密码保护会计数据,对不同用户,授予不同的权限。为了满足个性化需求,会计软件大多提供二次开发接口,允许用户导出会计数据,甚至直接访问账套所属数据库,该功能可能成为数据泄露渠道。在软件开发时,对数据库内关键数据或者导出数据进行DES加密,是软件设计者可考虑的安全措施之一。

(一)账套数据库中文本字段的加密处理

账套中单位基本信息、会计科目体系数据、用户名称、身份证号、联系方式,客户和供应商信息,存货名称等都属于重要的内容,一旦泄露,将会给单位或个人带来安全风险。开发时,通过底层的DES加密处理,确保数据即便被非法使用者获取,也只能是密文,无法知道明文内容。

字段经DES加密,值发生显著变化。例如,密钥“12345678”,密文做文本化处理,明文字符数不是8的倍数时,用空格补足。科目编码“1001”和“100201”的密文分别是“98b843260952f3b1”和“31e46014dbf66dcd”;科目名称“库存现金”密文是“d171c6dbb165019f”;账套启用日期“2016年07月01日”的密文是“97bd605ee088362016d675558ac2242f”;金额“1000.00”密文“77e70225251d7487”。较特殊的字符串加密,如“00000000”,密文是“5f6a7d528e394f39”,从字面上看,密文与明文无法找到相关的规律性。

密文保存时,变长字符型(VarChar)数据可以直接写回原来的字段,定长字符串或其他类型数据的字段,则需要另外设置VarChar字段保存,不进行密文的文本化处理情况下,可以设置Binary型字段保存密文。

虽然DES加密算法从速度上优于其他加密方法,但是,嵌入软件内的加密处理仍然需要耗费一定的时间,而管理软件数据量大,时效要求高,所以,尽量只选择对安全要求高的字段做加密处理。

(二)会计软件导出数据的加密处理

会计软件导出数据一般以文件形式单独存放,文件类型有多种,常见的有:文本文件、Excel文件、Word文件或者Vfp表(Dbf)文件等等,也可能是会计软件自定义的文件格式。例如,用友ERP-U8的.Rep报表文件。除自定义格式文件外,其他类型的文件都能够被第三方软件打开使用。由于第三方软件的通用性,容易出现数据外泄风险,对于涉密数据,可以对数据文件进行DES加密处理。

对于Excel工作簿或者Vfp的Dbf表,既可以对表内局部数据加密,也可以对整个文件加密,对于文本文件、Word文件或者会计软件自定义格式文件,可以对整个文件进行DES加密处理。局部加密时,关联软件可以打开密文形态的文件,此时,一旦对密文进行手工编辑,将导致无法解密的后果,这就要求有适当的保护措施。特别重要的机密数据,利用多重手段以保证数据信息安全。DES加密的同时,Word、Excel软件自身的加密手段也可以使用。压缩软件对独立文件压缩处理时,同样可以施加安全密码。

会计数据的加密处理,可以在软件设计阶段完成,将加密功能嵌入软件内部,这样做能够提高加密效率和可靠性。以这种方式加密,密钥可以由用户管理或者系统内设固定值。已经运行的会计软件,在没有得到软件开发商加密升级的情况下,也可以由第三方开发数据加密工具软件,外挂在会计软件上执行,这种方式也可以保证数据具备加密特性,但是,要注意两个软件的匹配,尤其是会计软件升级后,加密软件的适应性问题。

4 利用DES算法对会计数据加密应注意的问题

(一)保证密钥字符的有效性

DES密钥一般为8个字符,实际只用到64数据的56位,每个字符的最后一个二进制位被定义为校验位,未参与DES运算。实际应用中,不应使用ASCII值128作为密钥值,保证DES算法密文的有效性。

DES采用8字符密钥,会给用户带来不良体验。针对这种情况,可以考虑密允许钥字符数可变。当普通用户设置的字符数小于8时,由程序自动补空格。当用户设置的密钥字符数大于8时,按照字符的二进制位,等间距选择64位二进制位,其他未用的二进制位丢弃掉。

(二)防止密钥丢失或泄露

密码忘记或丢失将导致数据无法还原,造成数据损失。建立严格密码管理制度,并且,要严格监督用户按制度执行,做到数据的安全可靠。同时,将密钥放入程序内或者加密的同一个数据库中,会带来密钥泄露的风险。应该将密钥另外妥善存放,提高加密数据的安全可靠性。

如果所有的会计数据采用相同的密钥,泄露的密钥会导致所有数据泄密。最好将会计数据分类,针对不同类型数据采用不同密钥。一般来说,会计数据处理具体周期性特点,比如,凭证、日记账和日报表每天都要处理,会计账簿和报表每月输出一次。可以针对每天都变化的数据设置一个密钥,再对每月变化一次的数据另设置一个密钥。同时,还应该定期更换密钥,并对原有密钥做好存档保管,保证任何时候,合法用户都可以解密需要的内容。

(三)成批较短数据加密可能找到规律性

成批较短数据使用相同密钥加密,会产生有规律的数据密文,出现安全隐患。比如:数据库中的BIT型字段数据,只有一个二进制位,每个数据本身无法实现DES加密,数值型或日期字段明文加密后失去数值或日期类型特征,不能再保存到原来的字段中。较短数据进行DES加密时,可以通过另存成其他类型的字段,或者采用多密钥加密方法避免有规律密文出现。

多密钥应用时,制定一个可行的规则。可以考虑按照记录的关键字区分密钥,当关键字发生变化时,同步更新映射关系。也可以考虑在密文中附加标记的办法。比如:密文串首加二个字符,寻找密钥时,先将这二个字符转换成十六进制值,以该值做为索引位置,到多密钥表中索引位置提取密钥。

(四)高级语言的效率影响加密功能的现实

本文采用的Visual FoxPro高级语言,从处理效率上看,完成加密与解密处理的效率较低,但是,数据处理效率高,自带数据库及数据表管理功能,适合对商品化会计软件的二次开发,在提取其他软件会计数据时,又要考虑安全性问题,所以,在该语言中实现DES加密也是必要的。加密程序自主完成,更适合控制加密流程,或改进加密方法,对于部分字段数据的加密效率也可以接受的。如果对大量数据进行快速加密,可以考虑使用效率更高的语言,如:NET、C#、C、JAVA等,这些语言甚至内置了DES处理函数,实现加密处理更加方便。

综上所述,DES加密技术是信息化环境中,会计数据安全保障的有力措施之一,适当使用,确保信息安全。由于会计数据输入、处理和输出的复杂性,多重安全手段运用也是必要的。在加密处理过程中,应该同时兼顾效率与安全。还应该看到,DES算法不是最优的加密方法,随着安全性更高、速度更快的加密算法的出现,必然会进一步促进会计信息化的安全管理水平的提高。

[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].哈尔滨:哈尔滨工业大学,2013.

[5] 爨玉伟,阮晓宏.基于DES及其改进算法的文件加密系统[J].计算机技术与发展,2014(7):166-169.

[6] 李金良.针对DES加密的功耗分析攻击[D].上海:华东师范大学,2014.

[7] 李静.企业会计信息系统的风险及其防范[J].现代商业,2015(3):239-240.

[8] 宋彪.企业会计信息系统安全性浅析[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

猜你喜欢

字段密文字符
图书馆中文图书编目外包数据质量控制分析
一种支持动态更新的可排名密文搜索方案
基于模糊数学的通信网络密文信息差错恢复
字符代表几
一种USB接口字符液晶控制器设计
图片轻松变身ASCⅡ艺术画
HBM电子称与西门子S7-200系列PLC自由口通讯
一种基于密文分析的密码识别技术*
一种基于密文分析的密码识别技术*
CNMARC304字段和314字段责任附注方式解析