为了加强出租车计价器的管理,各地标准计量局采取了多种方法,但至今计价器仍有不少漏洞,为此我们把加密技术用于出租车计价传感器,设计了加密传感器。加密后的密码传感器提高了出租车计价器计费的准确性和安全性,解决了现有出租车计价器可靠性不高和难以实现统一管理的难题。
一、普通出租车计价传感器存在的漏洞
出租车计价器现在普遍采用电子传感器方式,传感器首先接收车的运行信息,然后送给计价器,计价器自动计算并显示里程数和车费;电子传感器方式计价器由传感器和计价器两部分组成,其组成框图如图1所示。
电子传感器用来监测出租车的运行状态,车行进一定的距离传感器就向计价器发出一个符合要求的脉冲,微机控制部分对传感器发来的脉冲进行计数,然后转换成里程和车费送显示部分进行显示,功能键是用来完成计价器设置时间、日期及历史记录查询等功能。
从电子式计价器原理可看出,只要向计价器发出符合要求的脉冲计价器便计费,不同的计价器对脉冲的要求不同,不同点包括正负脉冲、脉冲宽度和电平类型。现有技术模拟实现符合计价器要求的脉冲并不难,使得电子式计价器出现漏洞,降低了计价器计费的准确性和安全性。
二、建立加密传感器加密算法模型
通过以上分析不难看出,导致电子式计价器出现漏洞的根本原因是传感器发出的计数脉冲没有加密,以至于使用者可以自行增加或处理脉冲,借此来达到增加计费的目的。加密传感器的基本思想就是先对计数脉冲加密,使计费脉冲以密文方式传输,最后解密为明文脉冲,传送到计价器计费,其原理框图如图2所示。
常用的加密算法有对称加密和非对称加密,对称加密中的序列密码(stream cipher)、分组密码( block cipher)以其简捷、快速、容易标准化等特点,成为移动通信等实时加密领域的主流算法。非对称密码加密以其安全性高等特点为身份认证、数据的保密性、数据的完整性提供了有力的支持,但该加密算法速度较慢,对系统资源有一定要求。
由于该系统要求实时加密,硬件系统资源非常有限,而且加密要求只是把单一的脉冲信号转换成密文脉冲信号,所以采用对称加密会好一些。
在所有的对称加密算法中最简单的一种就是“置换表”算法,在“置换表”中每一个不同的数据信号脉冲C对应着“置换表”中的一个偏移量ofrset,偏移量offset所对应的值就是这个数据信号所对应的密文文件M.加密程序和解密程序都需要“置换表”。这种加密算法比较简单,加密解密速度都很快,为满足系统需要,我们设计了如下加密算法:
首先把电子传感器的每个计数脉冲C按照“置换表”转换为一个n位的二进制数M,然后按规定的协议将M发出,送给解码器,M既为该传感器送出的密文文件,不同的传感器发出不同的密文文件,当解码器接接收到加密器发送的密文文件M后,首先和解码器固有的密码P比较,如果P=M,解码器认为传感器发的信号有效,然后向计价器发出一个计数脉冲;如果P≠M,解码器认为传感器发的信号非法,不向计价器发出计数脉冲,计价器不计费,由于加密器和解码器都有自己固有的密码,只有P=M时计价器方可计数,因此出租车司机自己更换传感器后计价器根本不计费,计量部门可以用专用编程器改变加密协议中的“置换表”,改变加密器和解码器的固有密码。
三、加密传感器系统设计
1、 系统组成与工作原理
加密传感器系统主要有加密器、解密器和密码写入器3大部分组成,系统组成框图如图3所示。
(1)加密器
接收霍尔元件发送的脉冲信号,检测到这一变化后发出密码送解码器,每个加密器有一个固定密码存放于程序存储器中。
(2)密码写入器
为方便计量部门使用加密传感器而设计了修改解码器固有密码的专门装置,首先,读出密码写入器小数字键上设定的密码,当检测到按键按下时,便向解码器发送一组同步字符给解码器,最后,把密码按照规定的协议发送给解码器。
(3)解码器
可解密加密器发送的密码,产生计数脉冲,也可以接收密码写入器的新密码,从而改变解码器固有密码。
解码器接收到数字信号时,首先判断接收的是加密器发送的信号还是密码写入器发送的信号,它是通过判断接收的第一组数据是否为同步字符来完成的,若是同步字符,则认为是密码写入器发送的信号,接收后面的数据并保存到E2PROM中,作为新的固有密码。若不是同步字符,则读出自己E2PROM中的固有密码,与之相比较,若相等,则发送一个2 ms的高电平的计数脉冲给计价器,否则不发送该脉冲。
2、单片机选型
在密码传感器中,为了保证其安全性,加密器必须与霍尔元件封装于一起,这样,加密器可占用空间很小,且环境温度比较高(夏季达1 10℃),因此,要求单片机具有外围元件少、工作温度高和体小等特点,解码器对单片机要求除具有加密器的单片机特点外,还应具有E2PROM存储单元,实现解码器固有密码的修改和保存,以方便计量部门给加密器和解密器的配对。密码写入器为计量部门专用设备,用来修改解码器的固有密码,对单片机无特殊要求,以价格低廉为主要目标。
美国Microchip公司生产的8位单片机PIC12C508Ac5J和PIC12CE518A型产品,仅有8个引脚,且具有低功耗、多功能、高性能、体积小和售价低等特点,在本系统中,加密器、解密器和密码写人器分别采用了PIC12C508A、PIC12CE518A和INTER8031单片机。
3、加密器设计
在本系统中,加密器固有密码用5位十进制数表示,每位数字按脉冲方式发送,0发送10个脉冲,1至9发送的脉冲数与其值相等,脉冲格式如图4,每个脉冲低电平的时间是10μs,高电平的时间是15 μsS,周期为25 μs,发送一个数所用的时间小于255 μs。加密器工作程序框图如图5。
加密器中的核心部件为12C508A,电路原理图如图6所示,910为霍尔元件产生计数脉冲,PIC12C508A单片机接收到计数脉冲后首先进行加密,然后将密码发送给解码器。
4、解码器设计
(1)电路原理图
解码器电路原理如图7所示,主要包括光电隔离部分、12CE518A单片机和计数脉冲输出电路组成,光电隔离采用TPL521 -1,用于去干扰,保证系统可靠性。12CE518A单片机是解码器的核心部件,完成密码接收、解密、密码修改和计数脉冲输出等工作。计数脉冲输出电路用于TTL电平到+12 V电平脉冲的转换。
(2)固有密码的存储
串行E2PROM是可在线电擦除和电写入的存储器,具有体积小、接口简单、数据保存可靠、可在线改写、功耗低等特点,而且为低电压写入,在单片机系统中应用十分普遍, 单片机PIC12CE518A内部有16个字节的E2PROM,CPU和E2PROM采用I2C总线结构连接,GP6(SDA)和GP7( SCL)分别为数据线,时钟线,无需外接E2 PROM。
基于I2C协议下的E2PROM写、读程序框图如图8、9所示(以发送一个数据为例)。
(3)密码接收
解码器工作时,首先读出E2PROM中OOH -04H中存放的固有密码,分别保存在5个寄存器中,然后调用接收数据子程序,接受一个数据并存入寄存器中,判断是否为同步字符,不是同步字符,说明数据来自加密器,继续接收另外4个数据,将刚刚接收的5个数据与固有密码比较,如果相同,则说明接收的密码正确,在GPO引脚上发送一个2 ms的计数脉冲,然后返回,否则直接返回;若是同步字符,则说明是密码写入器发送来的信号,要求修改解码器的固有密码,继续接收5个分别写入E2 PROM的OOH -04H中,然后返回。程序只需在上电时从E2 PROM中读一次固有密码,以后就不在访问E2PROM,这样可保证计费准确度符合国家标准。
在加密传感器中,加密器向解码器发送的是密码,只有加密器和解密器固有密码相同时,解码器才向计价器中发送计数脉冲,计价器才计费。使用OTP单片机,程序一旦烧录后是无法改变,要想修改解密器固有密码,必须使用专用密码写入器,因此,加密传感器提高了计价器计费可靠性,实现了计价器有国家计量部门统一安装、维修和年检的统一管理。
小知识之霍尔元件
霍尔元件是应用霍尔效应的半导体。一般用于电机中测定转子转速,如录象机的磁鼓,电脑中的散热风扇等;是一种基于霍尔效应的磁传感器,已发展成一个品种多样的磁传感器产品族,并已得到广泛的应用。