具有一次一密和可追溯功能的电子签封锁系统
文献发布时间:2023-06-19 11:16:08
技术领域
本发明涉及一种电子签封锁,具体涉及一种具有一次一密和可追溯功能的电子签封锁系统。
背景技术
电子签封锁程的设计需要满足符合银行的要求,实现程序和信息的保密性,我们必须遵循电子签封锁“一次一密”的技术要求。每次在开锁的时候,密码均不相同,使用动态密码本次开发过程中的一个难点。解决方案就是需要编程的时候设计一个算法,根据特定的数据再通过算法生成每次的密码不一样。
同时商业银行的基金袋采用人工管理的方式,容易被非法开启,被非法开启后银行无法及时准确地知晓非法开启的时间和次数,无法及时做出响应,也无法及时报警或采取相应的处理措施,事后也无法精确地进行责任认定。因此长期以来人们迫切需要一种可靠的、能记录基金袋开启时间、状态、次数的设备,所以发明这样一款可追溯的电子签封锁显得尤为重要。
发明内容
本发明的目的就是为了满足银行基金袋运输货币的要求,计了一款主要介绍了基于STM32的具有一次一密和可追溯功能的电子签封锁系统,该电子签封锁通过手持设备可以进行开关锁操作,并能实现电子签封锁信息的追溯,当管理员需要追溯之前的问题环节时,可以查询电子签封锁的使用记录,如操作人员﹑操作时间﹑操作的功能。
为实现上述目的,本发明的技术方案是:
一种具有一次一密和可追溯功能的电子签封锁系统,由电子签封锁硬件、手持终端APP以及系统管理软件三部分组成,其特征在于,电子签封锁硬件由单片机模块、电机驱动模块、供电模块、RFID标签及机械锁体构成,其中RFID标签中存有EPC号,每个签封电子锁有且仅有一个EPC号;手持终端设备的作用有两点,一是可以读取签封锁体内的RFID的EPC号,使电子签封锁可以与手持进行数据关联;二是通过手持的无线控制功能,以此来实现电子签封锁的开合与关闭功能;系统软件由电子签封锁管理软件和手持终端APP软件两部分组成,电子签封锁管理软件主要用于实现电子签封锁的签封激活﹑关锁﹑开锁﹑追溯﹑恢复﹑日志清除功能;手持终端APP管理软件主要实现对电子签封锁的开关锁以及记录的查询与管理。
一次一密”的具体流程是:首先调用母卡PSAM卡,在手持内将电子签封密钥分散成四种子密钥;灌装后,此时电子签封锁内也有4种子密钥;当手持发出加密的激活指令后,签封激活子密钥对传输保护子密钥进行加密,传输保护密钥对激活指令进行加密,当电子签封锁收到被加密的激活指令的时候,电子签封锁内的电子签封激活子密钥对手持发来的传输保护子密钥进行解密,然后电子签封内的传输保护子密钥对指令进行解密,解密后得到激活指令;电子签封锁在收到指令的同时,调用EPC区内的随机数,产生8byte的随机因子;之后随机因子对传输保护子密钥进行TK1分散,也就是解密来生成传输保护过程密钥,解密后获得激活指令;当电子签封锁对指令解析成功的时候,EPC随机数发生变化,便会生成新的8byte的随机因子,对之前生成的传输保护过程密钥使用DES算法分散生成进行加密,生成新的传输保护子密钥;之后,新的传输保护子密钥将写入MCU中,同时将新的传输保护子密钥传给手持。
电子签封锁追溯的流程是:
接受到追溯指令后,读取EEPROM内的1到4条日志记录,然后调用加密函数对日志记录进行加密,对日志记录补充日志状态,调用TK1函数对1,2条记录加密后送到指令区,然后继续调用TK1函数把3,4条记录加密后送到指令区,由外部设备读取;电子签封锁根据指令中的“结束标识”位判断是等待继续接收追溯指令或追溯操作已结束,如判断继续等待则此时签封不下电,如判断追溯操作结束则签封下电;
电子签封锁追溯的恢复与清除流程是:
清除即清除所有的日志记录,同时存储此次清除指令的操作记录,清除EPC备份区的数据,清除物流区操作记录,清除指令区指令数据;
恢复即先存储恢复指令的日志记录,当EFC异常的时候,存储EPC错误数据的日志记录,然后把EPC标志位置0。
与现有技术相比,本发明的有益效果是:
本发明系统实现电子签封锁的签封激活﹑关锁﹑开锁﹑追溯﹑恢复﹑日志清除等功能,电子签封锁的开关锁以及记录的查询与管理,能可靠的地记录基金袋开启时间、状态、次数,是一款可追溯的电子签封锁。
附图说明
图1是本发明中电子签封锁系统的整体框图;
图2是本发明中电子签封锁的密钥结构示意图;
图3是本发明中电子签封锁激活时的密钥使用流程;
图4是本发明中电子签封锁开锁时的密钥使用流程;
图5是本发明中电子签封锁追溯时的密钥使用流程;
图6是本发明中电子签封锁的追溯流程;
图7是本发明中电子签封锁的关锁流程;
图8是本发明中电子签封锁的清除流程;
图9是本发明中电子签封锁的恢复流程。
具体实施方式
下面结合实施例及附图进一步解释本发明,但并不以此作为对本申请保护范围的限定。
本发明系统的整体结构由电子签封锁硬件、手持终端APP以及系统管理软件三部分组成,其框图如图1所示。电子签封锁由单片机模块、电机驱动模块、供电模块、RFID标签及机械锁体构成,其中RFID标签中存有EPC号,每个签封电子锁有且仅有一个EPC号;手持终端设备的作用有两点,一是可以读取签封锁体内的RFID的EPC号,使电子签封锁可以与手持进行数据关联。二是通过手持的无线控制功能,以此来实现电子签封锁的开合与关闭功能;系统软件由电子签封锁管理软件和手持终端APP软件两部分组成,电子签封锁管理软件主要用于实现电子签封锁的签封激活﹑关锁﹑开锁﹑追溯﹑恢复﹑日志清除等功能。手持终端APP管理软件主要实现对电子签封锁的开关锁以及记录的查询与管理。
首先电子签封锁内初始的密钥表是由银行提供,将密钥、签封ID、协议版本号打包封装至应用包,由上位机下载应用包至签封内。其中密钥分为4种,分别为业务处理子密钥,传输保护子密钥、安全防护子密钥和签封激活子密钥。采用标准的PBOC2.0密钥分散算法对业务处理密钥、传输保护密钥、安全防护密钥和签封激活密钥进行分散操作,生成每个密钥对应的子密钥,分散因子为签封ID号,基本算法为标准的3DES,生成的子密钥均为16byte。之后进行密钥截取,其中业务处理子密钥为8byte,用于MCU及EEPROM内存储的日志记录及RFID芯片中EPC备份数据的加解密;传输保护子密钥为8byte,用于交互过程中指令的加解密(防止被其它EPC拦截)。安全防护子密钥为4byte,用于电子签封锁中RFID芯片中数据区的防护,是防止其它手持读取其数据。签封激活子密钥为8byte,用于签封激活流程中对传输保护密钥进行加密。密钥结构如图2所示。
为了便于理解“一次一密”功能的具体实现,还需要介绍几种算法。算法分类包括:
(1)子密钥分散算法:用于电子签封密钥分散生成其子密钥,分散因子为签封ID号。计算时左补0X00至7byte,然后右补0X80。共计8byte。基本算法为标准的3DES,生成的子密钥均为16byte。业务处理时进行密钥截取。其中传输保护密钥子密钥、业务处理子密钥、传输替换子密钥、签封激活子密钥截取高8byte,安全防护密钥截取高4byte。(此过程是在手持中有PSAM卡完成)
(2)随机因子合成算法:用于合成生成传输保护过程密钥时的分散因子。EPC数据区1-5字段共8byte,取操作计数器低位1byte,对以上8byte每字节分别相加,得出8byte随机因子。
(3)TK1分散算法:用于传输保护过程密钥的生成。由传输保护子密钥经8byte随机因子分散生成,算法为标准单DES。
(4)EPC校验码合成算法:用于EPC关键数据的校验码计算。取EPC的1-5字段,8byte,表示A。取EPC的6字段右补0至8byte,表示B。取TID(12byte)的低8byte,表示C。取C对A和B依次异或,计算结果表示D。MCU调用业务处理子密钥(8byte)对D进行单DES进行加密运算,得出结果取低位12bit作为校验码。
(5)CRC算法:用于指令数据和日志记录的完整性校验。
下面来介绍“一次一密”的具体流程。首先调用母卡PSAM卡,在手持内将电子签封密钥分散成四种子密钥。灌装后,此时电子签封锁内也有4种子密钥。当手持发出加密的激活指令后,签封激活子密钥对传输保护子密钥进行加密,传输保护密钥对激活指令进行加密,加密算法均为DES算法。当电子签封锁收到被加密的激活指令的时候,电子签封锁内的电子签封激活子密钥对手持发来的传输保护子密钥进行解密,然后电子签封内的传输保护子密钥对指令进行解密,解密后得到激活指令。电子签封锁在收到指令的同时,调用EPC区内的随机数,产生8byte的随机因子。之后随机因子对传输保护子密钥进行TK1分散,也就是解密来生成传输保护过程密钥,解密后获得激活指令。当电子签封锁对指令解析成功的时候,EPC随机数发生变化,便会生成新的8byte的随机因子,对之前生成的传输保护过程密钥使用DES算法分散生成进行加密,生成新的传输保护子密钥。之后,新的传输保护子密钥将写入MCU中,同时将新的传输保护子密钥传给手持。有关激活时的密钥使用流程如图3所示。
当手持发出开锁指令后,手持发出被传输保护子密钥加密的开锁指令电子签封锁收到指令的同时,调用EPC区内的随机数,产生8byte的随机因子。之后随机因子对传输保护密钥进行TK1分散,也就是解密来生成传输保护过程密钥。当电子签封锁对指令解析成功的时候,便会生成新的8byte的随机因子,对之前生成的传输保护过程密钥进行加密,生成新的传输保护子密钥。之后,新的传输保护子密钥将写入MCU中,同时将新的传输保护子密钥传给手持。关锁与开锁流程相似。有关开锁时的密钥使用流程如图4所示。
电子签封锁进行操作时,签封将解析成功的指令数据去掉原始的CRC,然后调用业务处理子密钥加密存储成日志记录。当需要进行追溯的时候,手持发出追溯指令,传输保护密钥对追溯指令进行加密,电子签封收到指令后,用传输保护子密钥进行解密,解析得到追溯指令。MCU读取EEPROM中的日志记录,调用业务处理子密钥解密日志记录。然后调用传输保护子密钥将日志记录加密传回给手持,手持调用传输保护子密钥解密日志记录。在此过程中,传输保护密钥也会同之前开锁指令时一样,产生新的传输保护密钥,流程也相同。有关追溯时的密钥使用流程如图5所示。
银行系统要求当基金袋出现问题时,能够查询到它的操作信息比如:操作人员﹑操作时间﹑操作的功能﹑是否有错误操作等。记录追溯就可以完美解决这些问题。
电子签封锁追溯的功能流程如下:
接受到追溯指令后,读取EEPROM内的1到4条日志记录,然后调用加密函数对日志记录进行加密,对日志记录补充日志状态,调用TK1函数对1,2条记录加密后送到指令区,然后继续调用TK1函数把3,4条记录加密后送到指令区,由外部设备读取。电子签封锁根据指令中的“结束标识”位判断是等待继续接收追溯指令或追溯操作已结束,如判断继续等待则此时签封不下电,如判断追溯操作结束则签封下电。具体流程图如图6所示。
电子签封锁关锁的功能流程如下:
开锁和关锁程序类似,所以这里只介绍关锁流程。首先对指令数据进行解析,解析成功后且锁的状态为“开”的时候,EPC的工作标志置1,操作计数器+1,调用加密函数对日志记录进行加密,对日志记录状态进行补充以及CRC校验,判断锁盖是否就绪,如果没有准备就绪,发出红灯报警,并返回主程序;如果准备就绪,则机械动作关锁,关锁后日志状态更新为“成功”,EPC备份数据更新和EPC数据更新,之后返回主程序;若前面对指令数据进行解析时没有成功或锁未开,则直接返回主程序。具体流程图如图7所示。
在电子密码锁使用了一段时间以后,信息量大而且冗余。就需要清除选项将以前的老旧信息清理干净。而如果进行了误操作,造成了信息的损失,那么恢复功能就显得尤为重要。
电子签封锁追溯的恢复与清除流程如下:
清除即清除所有的日志记录,同时存储此次清除指令的操作记录,清除EPC备份区的数据,清除物流区操作记录,清除指令区指令数据。清除的流程如图8所示:即开始,判断是否成功解析指令,若没有解析成功,则返回主程序,若解析成功,则清楚所有的日志记录,存储清楚指令的日志记录,清楚EPC备份数据,清楚物流区操作记录,清除指令区指令数据,返回主程序,程序结束。
恢复即先存储恢复指令的日志记录,当EFC异常的时候,存储EPC错误数据的日志记录,然后把EPC标志位置0。恢复的流程如图9所示,具体是:开始,是否成功解析指令,若解析成功,则存储恢复指令的日志记录,再判断EPC异常标志位是否等于1,若不等于1,则直接返回主程序,若等于1,则存储“EPC错误数据”日志记录,EPC异常标志位=0,返回主程序;若没有成功解析指令,则直接返回主程序,则程序结束。
上述主程序是指程序开始运行的地方。
- 具有一次一密和可追溯功能的电子签封锁系统
- 一次性锁杆电子签封锁