嵌入式系统授权密匙的实验与设计

2020-06-23 02:20文福江邓琳
高师理科学刊 2020年5期
关键词:嵌入式加密终端

文福江,邓琳

(齐齐哈尔大学 建筑与土木工程学院,黑龙江 齐齐哈尔 161006)

嵌入式系统产品的授权时间问题(即试用期时限),是嵌入式系统产品开发者面对的一个普遍问题.从理论的角度讲,嵌入式系统的授权时间,可分为工厂模式授权和应用现场授权2种.工厂模式授权,在工厂批量生产时授权很容易实现,但应用现场授权往往受很多因素的制约和影响.概括起来,有几种实现方式:(1)利用拨码开关在出厂时或者现场进行设置;(2)重新下载 MCU程序,直接写入授权时间;(3)利用嵌入式系统终端的键盘现场修改授权时间;(4)采用联网方式批量进行授权的修改.前3种可以看作是单机修改授权时间模式,最后1种是联网修改授权时间模式.在单机授权模式中,方式1采用的是地址编码方法,由于是机械开关编码,编码方式固定,对一台机器授权时间的修改操作尚可,对多个机器采用相同的操作,分别进行修改授权时间时,密匙编码容易被识破.方式2由于直接写入MCU授权时间,后期重新改变授权时间,只能继续采用这种方式,灵活性与便捷性都很差[1-2].基于此,以STC单片机为例,重点讨论方式3的设计与实现.

1 授权密匙原理

1.1 系统结构

嵌入式系统结构见图1.从图1可以看出,整个系统由主机(上位机)和若干终端(下位机)构成.授权密匙的修改,实质就是现场修改使用授权的状态,或关闭使用授权,或开放使用授权.根据图1,授权密匙的修改可以采用 2种方式:(1)上位机根据终端地址 ID批量修改;(2)在单个终端上进行修改.2种方式的授权密匙从使用便利性的角度讲,各有优势和缺点.从成本构成权衡,如果终端传感器数量较少,或者数据处理与控制较简单,可以选择单片机方式[3-4].

图1 嵌入式系统结构

1.2 授权密匙结构

授权密匙修改状态进入是指嵌入式系统终端在时钟设置状态,进入授权密匙修改的状态.假定进入授权密匙修改状态的前提是时钟设置状态,则与授权密匙有关的组数据变量格式为:YY-MM-DD(年-月-日),hh-mm-ss(时-分-秒).

1.2.1 正常显示状态 即设备运行时的状态,包括时间与传感器采集的即时数据.传感器数据的显示这里暂不讨论,只讨论与授权时间有关的内容.正常状态下,终端显示的日期、时间格式见图2.

1.2.2 日期时间修改状态 在正常显示状态,按设置键进入日期时间修改状态,相应的日期或时间调整位会闪动,如调整年时的状态见图3.

1.2.3 授权时间修改状态 在时间修改状态下,可进入授权时间修改状态.为防止设置时间时错误地进入授权时间修改状态,系统进入该状态必须满足2个条件:(1)日期与时间的数据必须满足密匙算法;(2)满足条件后,光标必须移动到秒位置时,才能进入授权时间修改状态(见图4).

图2 终端显示的日期、时间格式

图3 调整年时的状态

图4 授权时间修改状态

授权时间的长度是与设置时的当前时间为基准计算的.授权时间的时间单位为 T,可以为月、周、日中的一种,讨论以周为单位.授权时间的长度Lt=n×t,通常Lt是一个数组,例如:Lt={00,02,04,12,27,54,99},n为时间单位的倍数,即数组中的某一个元素的值.设置时通过键盘选择数组元素.数值00代表无授权,99代表开放授权,其它值Lt等于数值n与T(周)的乘积.

1.3 密匙状态进入

调整过程流程见图5.

图5 授权时间修改流程

2 密匙生成及存储

密匙生成的方法繁多,这里采用实用性好的对称密匙生成方法[5-7].

2.1 逐位运算法

设正常显示的时间格式见表1.

逐位运算法就是将日期与时间数据,以一一对应的关系逐位进行算术或逻辑运算,获得的结果作为密匙.假设密匙为345678,则将日期格式的(年-月-日)Y1Y0-M1M0-D1D0与时间格式的(时-分-秒)h1h0-m1m0-s1s0对应位求和,和值为S5S4S3S2S1S0=345678,光标位于秒位置就进入授权时间设置状态.密匙生成方法见表2.

表1 日期时间格式

表2 逐位运算法生成密匙

2.2 求和法

正常显示的时间格式见表3,其中年数据取最低2位.设密匙为MhMl=5678.

在设置时,只要将日期(年(低 2位)+月+日)数据的算术和设置等于56,时间数据(时+分+秒)的算术和设置等于78,光标停留在秒位置上,就进入授权时间设置图4的状态.

逐位运算法与求和法,在实际应用中效果都不错.比较而言,求和法操作的灵活性更强,更具有隐蔽性,现场修改授权时间密匙不容易被识破[8-11].

表3 求和法生成密匙

2.3 密匙数据处理

2.3.1 密匙数据保存 密匙数据的存储一般有2种,一种是保存在独立的EEPROM芯片中,另一种是保存在MCU片内的EEPROM中.保存在独立EEPROM芯片中有很多不足之处,该研究保存在片内EEPROM中.以STC15W408AS单片机为例,片内有5 K容量的EEPROM,以扇区为单位存储数据,每个扇区512 B[12-13].以求和法生成的5678密匙为例,保存在EEPROM的最后一个扇区的最后2个字节.片内EEPROM的数据与独立芯片的EEPROM一样,可以读出.如果密匙数据不加密直接保存,数据读出就直接破解,也无法称作密匙了,破译的危险性比较高.因此,保存在EEPROM中的数据要进行加密处理.

2.3.2 密匙数据加密解密过程 设密匙为0x5678,加密采用移位倍加方式.加密过程见图6,解密过程见图7.

图6 密匙加密过程

图7 密匙解密过程

3 结语

现场修改授权时间是嵌入式系统设计经常面对的问题.限于对已量化产品的保护,没有把实物的2款产品图片贴出.尽管实现的方式方法千差万别,但对于单机而言,本文讨论的方法具有很强的灵活性和保密性,具有一定的推广价值.

猜你喜欢
嵌入式加密终端
一种新型离散忆阻混沌系统及其图像加密应用
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
X美术馆首届三年展:“终端〉_How Do We Begin?”
通信控制服务器(CCS)维护终端的设计与实现
一种基于熵的混沌加密小波变换水印算法
TS系列红外传感器在嵌入式控制系统中的应用
GSM-R手持终端呼叫FAS失败案例分析
搭建基于Qt的嵌入式开发平台
加密与解密
认证加密的研究进展