BASE64算法在消防泵自动巡检系统中的应用

时间:2022-10-25 03:51:37

BASE64算法在消防泵自动巡检系统中的应用

摘 要:文章深入分析了BASE64算法的原理,并给出具体实现的算法程序,最后讨论如何改进BASE64算法,讨论其在消防泵自动巡检系统中的应用。

关键词:BASE64;编码;加密;消防泵

引言

目前,嵌入式技术的飞速发展,实现消防给水设备的动态监测。消防泵自动巡检系统在设定的时间周期内自动地启动消防泵,对消防泵的运作进行检查,对发生问题的消防泵进行报警指示,能够保证消防设备正常动作[1]。在开发消防泵自动巡检系统的过程中,既涉及到数据的安全,又关系到控制器处理能力与系统运行速度等多方面的问题。基于安全考虑必须对系统参数和历史巡检记录进行加密,还能正确解密出来显示供值班员查看历史记录。文章提出一种使用改进的BASE64算法应用到消防泵自动巡检系统中。既能保留BASE64算法的高效优点,又能提高解密的难度[2]。

1 BASE64编码与解码原理

1.1 定义

按照RFC2045的定义,BASE64被定义为:BASE64内容传送编码被设计用来把任意序列的8位字节描述为一种不易被人直接识别的形式。BASE64常用于在通常处理文本数码的场合,表示、传输、存储一些二进制数据。

1.2 BASE64编码原理

BASE64编码原理[3]是:首先,把3个字节的数据放入一个24位的缓冲区中;然后,从缓冲区最高位开始连续截取6位二进制,再在这6位二进制数的高位添加两个0组成一个新字节;再接着连续截取6位二进制,再添加两个0组成第二个新字节;依此类推,直到24位二进制全部被截取完毕,共截取出4个新字节;最后,把4个新字节作为索引从BASE64编码表中查出编码字符作为密文,如表1所示。对于明文不足3个字节的情况,以字节0补上,按BASE64编码后使用字符“=”作为密文。

从BASE64编码原理可知,把3个字节转换成4个字节,编码后数据容量至少增加33.3%。按消防泵自动巡检系统的运行要求,计算保存历史巡检记录的内存卡的容量。现在设每天保存明文数据的容量为A,系统设计运行周期为T年,每年按366天计算,则内存卡的容量B=A×1.33×T×366。当A=1.8M字节,T=3年时,则容量B=2.5G字节。因此,消防泵自动巡检系统的SD内存卡选用4G容量,预计可以同时保存4.8年的历史巡检记录。

表1 BASE64编码表

1.3 BASE64解码原理

BASE64解码原理是:首先,从密文中取出4个字节,从BASE64解码表中查出其索引值;然后,把4个字节的索引值的低6位二进制放入一个24位的缓冲区中;接着,从缓冲区的最高位开始连续截取8位二进制,组成一个新字节;依些类推,直到24位二进制全部被截取完毕,共截取出3个新字节。这3个新字节就是明文。

2 改进的BASE64编码与解码原理

破解密码的常用方法是逐一运用不同加密算法的解码程序。对于本系统使用BASE64编码的密文,是很容易被破解的。为了能够提高破解的难度,需要先分析一下BASE64编码的工作原理和特点。BASE64编码有三个明显的特点:(1)按BASE64编码表进行置换字符;(2)明文不足3字节时,编码后使用字符“=”作为密文;(3)编码容量至少增加33.3%。

因为BASE64算法只应用到消防泵自动巡检系统中,不会出现类似像“/”字符是控制字符,并不能通过计算机显示出来,在某些场合就不能使用了”的问题[4]。针对这三个特点,提出四个改进的方案:

方案一:利用置换字符的原理,重新制作BASE64编码表和解码表,可以打乱标准编码表中的字符,也可以更换成其它字符。破解者需要积累完整的64字节的BASE64编码表,才能完全破解本算法。

方案二:在第二个特点中不使用字符“=”,改用其它字符,例如“$”。

方案三:在明文的前或后增加密钥字符串,再进行BASE64算法。并且准备多套密钥轮换使用,又会提高破解难度。

方案四:在BASE64编码过程中,每3个明文字节产生4个新字节,再按顺序把4个新字节排列起来。如果打乱这4个新字节的排列顺序,又会得到新的密文。把4个新字节进行全排列,共有P44=4×3×2×1=24种情况。

方案五:对明文进行多次BASE64算法,但是考虑第三个特点,次数不宜太多。应用两次至少增加77.8%,应用三次至少增加137%,建议不要超过两次。

按照本系统的运行需要,同时使用方案一、二、三、四。破解算法者需要先认定本算法源自于BASE64算法,再考虑到这五种方案,才有可能破解本算法。可见,破解本算法的难度会被大大提高。

3 结束语

文章提出的改进的BASE64算法应用到消防泵自动巡检系统中,不单保留BASE64算法的优点,同时提高破解算法的难度。实践应用表明,系统已经运行几个月,非常稳定和可靠。改进的BASE64算法简单易用,也可以应用到其它嵌入式产品中。

参考文献

[1]中华人民共和国公安部.GB50016-2006建筑设计防火规范[S].北京:中国计划出版社,2006.

[2]韩宇贞,朱华生.基于BASE64编码的数据加密技术[J].南昌水专学报,2002,21(4):38-40.

[3]杨智,王凤琴,王丽琴.在VB6.0中实现BASE64编码/解码[J].计算机应用,2000(9):28-30.

[4]唐武生,田立红,曹伟.BASE64编码的实现与应用研究[J].长春大学学报,2006,16(2):69-72.

作者简介:梁文祯(1984,3-),男,籍贯:广东省江门市,学历:学位:工程硕士,职位:教师,职称:讲师,研究方向:嵌入式系统技术应用以及自动化控制。

上一篇:自主探究 身体力行 下一篇:浅析配电网自动化技术