一种硬件电路加密方法与流程

文档序号:20600737发布日期:2020-05-01 21:37阅读:495来源:国知局
一种硬件电路加密方法与流程
本发明的涉及硬件设备的加密技术。
背景技术
:在一卡通商务网关的应用中,硬件电路通过是经过加密的,但在使用过程中,常常暴露出加密效果不理想的问题,例如已加密的硬件电路被外来程序控制等,因此,如何提高硬件电路的加密效果是一卡通商务网关面临的一大难题。技术实现要素:本发明的目的是为了解决商务网关硬件电路加密效果不理想,导致硬件电路经常被外来程序控制的问题,提供一种硬件电路加密方法。本发明所述的一种硬件电路加密方法,适用于硬件电路加密装置,所述的硬件电路加密装置包括如下模块:译码模块,所述译码模块为采用二四译码器和三八译码器实现的门电路译码器,用于对输入地址ma23、ma22、ma3、ma2、ma1进行地址译码;密数写入模块,包括d触发器u1、d触发器u2、d触发器u3、d触发器u4、d触发器u5、两个或门、以及与非门;其中一个或门的两个输入端分别用于接收写控制信号和使能信号cs_init,输出端连接d触发器u1的触发信号输入端;另一个或门的两个输入端分别用于接收读控制信号和使能信号cs_init,输出端连接d触发器u2的触发信号输入端;所述d触发器u1的四个d输入端d0、d1、d2和d3分别作为所述密数写入模块的四个io端口md0、md1、md2和md3,d触发器u1的四个输出端q0、q1、q2和q3分别连接d触发器u2的四个d输入端d0、d1、d2和d3,d触发器u2的输出端q0、q1和q2分别连接d触发器u3的d输入端、d触发器u4的d输入端和d触发器u5的d输入端,d触发器u2的输出端q3同时连接d触发器u3、d触发器u4和d触发器u5的触发信号输入端;d触发器u3、d触发器u4、和d触发器u5的复位引脚均用于接收复位信号,d触发器u3的输出端连接与非门的高电平有效输入端,d触发器u4和d触发器u5的输出端连接与非门的两个低电平有效输入端;通讯管道控制模块,包括d触发器u6、一个二输入或门、四个三输入或门、以及一个四输入与门,其中,二输入或门的两个输入端分别用于接收使能信号cs_485和写控制信号,该二输入或门的输出端连接d触发器u6的触发信号输入端,d触发器u6的四个d输入端d0、d1、d2和d3分别用于接收四个io端口md0、md1、md2和md3输入的信号,d触发器u6的四个输出端q0、q1、q2和q3分别连接四个三输入或门的第一个输入端,四个三输入或门的第二个输入端分别用于接收四个rdxi信号,四个三输入或门的第三个输入端均用于接收密数写入模块中与非门的输出信号,四个三输入或门的输出端分别连接四输入与门的四个输入端;所述方法包括:当使能信号cs_init由高电平变为低电平时,预置数据1到io端口md0上、预置数据0到io端口md1上、预置数据0到io端口md2上、预置数据1到io端口md3上;向已占用地址0cxxx0h或0cxxx1h写入数据;从已占用地址0cxxx0h或0cxxx1h读出数据;预置数据1到io端口md0上、预置数据0到io端口md1上、预置数据0到io端口md2上、预置数据0到io端口md3上;向已占用地址0cxxx0h或0cxxx1h写入数据;从已占用地址0cxxx0h或0cxxx1h读出数据;其中,所述地址0cxxx0h和0cxxx1h对应的输入地址为:ma23=1,ma22=1,ma3=0,ma2=0,ma1=0。可选地,所述的译码模块具体包括与门、或门、二四译码器和三八译码器;所述与门的两个输入端分别用于接收读控制信号和写控制信号,与门的输出端连接或门的一个输入端,所述或门的另一个输入端用于接收复位信号,或门的输出端同时连接二四译码器的使能信号输入端和三八译码器的一个使能信号输入端;所述二四译码器的两个译码信号输入端分别用于接收地址ma22和ma23,二四译码器的第四个输出端连接三八译码器的另一个使能信号输入端,所述三八译码器的第三个使能信号输入端用于接收复位信号;三八译码器的三个译码信号输入端分别用于接收地址ma3、ma2和ma1,三八译码器的第一个输出端用于输出使能信号cs_init,三八译码器的第四个输出端用于输出使能信号cs_485。本发明所述的硬件电路加密装置可以由硬件电路实现,也可以由嵌入在cpld中的计算机程序实现,例如可以使用xc95144xl上的116个io端口,双cpu系统的所有总线及io都连到了cpld芯片电路上,通过统一编程实现复杂的逻辑控制。配合本发明所提供的硬件电路加密方法来控制所述加密装置的读写时序,实现对硬件电路的加密保护。本发明具有以下优点:加密效果好,隐蔽性强。本发明要求在固定的地址上,按固定的操作方式操作,最终达到目标状态。配合复杂隐蔽的程序设计来通过控制通讯线路,所以加密非常隐蔽,效果好,不宜引起破解者的关注。本发明适用于各类使用可编程控制器的硬件设计中。附图说明图1是本发明具体实施方式一的译码模块的电路结构示意图;图2是本发明具体实施方式一的密数写入模块的电路结构示意图;图3是本发明具体实施方式一的通讯管道控制模块的电路结构示意图;图4是本发明具体实施方式一的加密方法的流程示意图。具体实施方式具体实施方式一:结合图1至图4说明本实施方式。本实施方式提供了一种通过cpld实现的硬件电路加密装置,适用于cpld,所述装置包括译码模块、密数写入模块和通讯管道控制模块。如图1所示,所述译码模块为采用二四译码器和三八译码器实现的门电路译码器,用于对输入地址ma23、ma22、ma3、ma2、ma1进行地址译码;所述的译码模块具体包括与门、或门、二四译码器和三八译码器;所述与门的两个输入端分别用于接收读控制信号和写控制信号,与门的输出端连接或门的一个输入端,所述或门的另一个输入端用于接收复位信号,或门的输出端同时连接二四译码器的使能信号输入端和三八译码器的一个使能信号输入端;所述二四译码器的两个译码信号输入端分别用于接收地址ma22和ma23,二四译码器的第四个输出端连接三八译码器的另一个使能信号输入端,所述三八译码器的第三个使能信号输入端用于接收复位信号;三八译码器的三个译码信号输入端分别用于接收地址ma3、ma2和ma1,三八译码器的第一个输出端用于输出使能信号cs_init,三八译码器的第四个输出端用于输出使能信号cs_485。上述门电路译码器能够对输入地址ma23、ma22、ma3、ma2、及ma1的输入信号进行地址译码。当且仅当输入信号为ma23=1、ma22=1、ma3=0、ma2=0、ma1=0时,才能够得到实际地址0cxxx0h或0cxxx1h,此时,控制使能信号cs_init由高电平变成低电平,表示地址使能有效;当且仅当输入信号为ma23=1、ma22=1、ma3=1、ma2=0、ma1=0时,才能够得到实际地址0cxxx8h或0cxxx9h,此时,控制使能信号cs_485由高电平变成低电平,表示地址使能有效。地址0cxxx0h或0cxxx1h用于解密时序地址。地址0cxxx8h或0cxxx9h是通讯管道选择地址。如图2所示,所述密数写入模块包括d触发器u1、d触发器u2、d触发器u3、d触发器u4、d触发器u5、两个或门、以及与非门;其中一个或门的两个输入端分别用于接收写控制信号和使能信号cs_init,输出端连接d触发器u1的触发信号输入端;另一个或门的两个输入端分别用于接收读控制信号和使能信号cs_init,输出端连接d触发器u2的触发信号输入端;所述d触发器u1的四个d输入端d0、d1、d2和d3分别作为所述密数写入模块的四个io端口md0、md1、md2和md3,d触发器u1的四个输出端q0、q1、q2和q3分别连接d触发器u2的四个d输入端d0、d1、d2和d3,d触发器u2的输出端q0、q1和q2分别连接d触发器u3的d输入端、d触发器u4的d输入端和d触发器u5的d输入端,d触发器u2的输出端q3同时连接d触发器u3、d触发器u4和d触发器u5的触发信号输入端;d触发器u3、d触发器u4、和d触发器u5的复位引脚均用于接收复位信号,d触发器u3的输出端连接与非门的高电平有效输入端,d触发器u4和d触发器u5的输出端连接与非门的两个低电平有效输入端。密数写入主要通过图2所示的逻辑电路实现,图2占用地址0cxxx0h或0cxxx1h,逻辑图中的逻辑单元由多个d触发器组成。控制过程分为两步,第一步,预置数据1到io端口md0上、预置数据0到io端口md1上、预置数据0到io端口md2上、预置数据1到io端口md3上,然后经过向已占用地址0cxxx0h或0cxxx1h先写入再读出的动作后,数据md0、md1、md2、md3可通过两级d触发器锁存到图2中的u2输出端上;第二步,变换md3的值,即预置数据0到io端口md3上,然后再经过向已占用地址0cxxx0h或0cxxx1h先写入再读出的动作后,可使数据001b(由于最后一级只通过3bit数据,所以此处为001b)通过最后一级d触发器u3,最终在密数写入模块输出端得到目的状态,即init_oe(初始值=1)等于0。init_oe=0,可以用于下一级电路的开关使用。密数写入模块的控制时序参见下表,其中,操作次序0为初始状态。表1控制时序表操作次序md0md1md3md3r/winit_oe011111111001w121001r131000w141000r0如图3所示,所述通讯管道控制模块包括d触发器u6和、一个二输入或门、四个三输入或门、以及一个四输入与门,其中,二输入或门的两个输入端分别用于接收使能信号cs_485和写控制信号,该二输入或门的输出端连接d触发器u6的触发信号输入端,d触发器u6的四个d输入端d0、d1、d2和d3分别用于接收四个io端口md0、md1、md2和md3输入的信号,d触发器u6的四个输出端q0、q1、q2和q3分别连接四个三输入或门的第一个输入端,四个三输入或门的第二个输入端分别用于接收四个rdxi信号,四个三输入或门的第三个输入端均用于接收密数写入模块中与非门的输出信号,四个三输入或门的输出端分别连接四输入与门的四个输入端。在通讯管道控制过程中,当密数写入模块正确打开后,会得到稳定的状态init_oe=0,之后,可以通过向地址0cxx8h或0cxx9h写入对应的通道控制位的数值来选择某一路管道的信号通过,管道的选择要遵循同时只能打开1路通讯管道的原则,即,控制数据为4个bit位,只能有一个bit位为0,其它3个bit位应为1。本实施方式中,通讯管道共有4个,当md0=0、md1=1、md1=1、md1=1时,可以保证rxdi_1接通rxdo,当md0=1、md1=0、md1=1、md1=1时,可以保证rxdi_2接通rxdo,当md0=1、md1=1、md1=0、md1=1时,可以保证rxdi_3接通rxdo,当md0=1、md1=1、md1=1、md1=0时,可以保证rxdi_4接通rxdo。md0、md1、md2和md3要保证只有1位等于0即可打开一个通道。商务网关硬件电路极的主板控制非常复杂,需要大约200个门电路、大约30个触发和驱动电路,累计大约需要40-50个集成电路才能完成,为了降低成本,减小主板体积,为了高质量完成产品设计的需要,本实施方式借助可编程控制器(简称cpld)电路实现上述功能,具体使用的是xilinx的xc95144xl(117可编程的io端口,3200个门单元),双cpu系统的所有总线及io都连到了cpld芯片电路上,通过统一编程实现复杂的逻辑控制,不仅减小了主板体积,还降低了成本。为了实现对cpld芯片内部逻辑的保密控制,使外来程序无法控制整个产品,本实施方式还提供了一种与上述加密装置相配合的加密方法,所述加密方法由嵌入在cpu内的计算机程序实现。如图4所示,所述加密方法包括以下步骤:当使能信号cs_init由高电平变为低电平时,预置数据1到io端口md0上、预置数据0到io端口md1上、预置数据0到io端口md2上、预置数据1到io端口md3上;向已占用地址0cxxx0h或0cxxx1h写入数据;从已占用地址0cxxx0h或0cxxx1h读出数据;预置数据1到io端口md0上、预置数据0到io端口md1上、预置数据0到io端口md2上、预置数据0到io端口md3上;向已占用地址0cxxx0h或0cxxx1h写入数据;从已占用地址0cxxx0h或0cxxx1h读出数据;其中,所述地址0cxxx0h和0cxxx1h对应的输入地址为:ma23=1,ma22=1,ma3=0,ma2=0,ma1=0。上述加密方法通过设置的数据触发锁存逻辑,将正确的密数001b逐步写入到最终的门电路的输入端。被写入的数据同时携带下一层逻辑的时钟信号,最终达到将数值001b写入到最后的门电路的输入端,使最终的输出信号由原始值1变成值0,值1能够关闭下一级逻辑电路,值0则能够打开下一级逻辑电路。上述加密方法嵌入在两个cpu中的一个,用于控制密数写入模块的控制时序,通过固有的读写时序打开部分逻辑电路,只有固有时序正确了,才能使加密装置的通讯功能被打通,才能使整个产品的通讯功能得以实现,否则,整个产品的通讯管路就会断开,通讯功能无法实现,所以外来程序难以控制加密装置。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1