具有技术保护功能的单片机程序固化系统设计

来源:本站
导读:目前正在解读《具有技术保护功能的单片机程序固化系统设计》的相关信息,《具有技术保护功能的单片机程序固化系统设计》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《具有技术保护功能的单片机程序固化系统设计》的详细说明。
简介:本设计是一种特殊的加解密系统,目的是保护技术开发者的知识产权。通过远程监测和控制产品单片机的程序固化过程,保证技术开发者与产品生产者根据生产量进行的合理利益分配的落实。

引言

由于单片机技术的普及,产品智能化程度得到不断提升。通常来说,单片机程序代码的优化程度决定产品的智能化程度。众所周知,在分工越来越明确的现代社会中,技术开发者与产品生产者常常是不统一的,因此需要进行技术转让。在众多的技术转让方式中,以生产量为依据,对技术开发者和生产者的应得利益进行分配,是比较常用的。该方式的特点是风险共担,然而在转让执行过程中常常会发生各种利益矛盾,操作中也会因信息不够透明等问题存在各种困难,最终导致信任危机。这对技术成果快速转化十分不利,而利益损失方往往是技术开发者。为此,针对智能测控仪器装置类的开发成果,研制一种具有知识产权保护功能的系统是十分必要的。

目前市场上已经存在各种加密器或者加密软件,但是它们仅仅对本地磁盘或者移动介质中的资料进行保护,不具备远程控制功能。现有的下载器也仅仅是将技术代码下载到单片机,不具备对技术生产情况进行统计等功能。而技术开发者真正需要的是能够集加密、远程控制以及程序固化于一身的产品。相比之下,“具有技术保护功能的单片机程序固化系统”恰好满足了这种需求,不但可以保护技术开发者的知识产权,还使生产者不必冒大的风险买断技术,只需要按照使用次数付费即可。另外,技术开发者可以同时将技术出售给多个生产者,从而推广了技术的应用,有利于技术成果的快速转化。

1系统总体方案

1.1系统组成

本系统同时服务于技术开发者和生产者,由软件和硬件两部分组成。软件部分包含IP(Intellectual Property)方软件以及客户端软件,硬件部分为专用下载器。

IP方软件由技术开发者持有,负责加密技术代码,解析并应答客户请求,对客户信息以及技术开发者已经开发的技术进行管理;客户端软件和专用下载器由生产者持有,负责完成请求、确认、下载、信息管理以及程序固化操作。系统组成框图如图1所示,IP方软件和客户端软件利用网络传输各种信息,从而实现技术开发者对生产过程的远程控制。

具有技术保护功能的单片机程序固化系统设计

图1系统组成框图

1.2系统信息处理过程简述

系统信息处理过程的关键是针对文件的处理。通过文件的传递,技术开发者和生产者之间借助于网络进行信息的交流。为了便于双方管理各种信息,软件借助数据库进行信息管理。系统的信息处理过程如图2所示。

由图2可知,系统的信息处理模块包括加密、请求、应答、下载和程序固化5个部分。其中前3个模块涉及5类文件的传输,需按照一定顺序执行:

① 首先传输的是请求注册文件,这是生产者向技术开发者提出技术请求。

② 生产者将请求注册文件通过网络传递给技术开发者,技术开发者利用IP方软件解析技术请求信息,同意生产者的请求并为其分配序列号,序列号可以唯一地标识生产者以及此次请求的技术,包含在注册文件之中。然后技术开发者开发出符合生产者要求的技术,利用IP方软件加密技术代码,生成技术文件。

③ 技术开发者将技术文件以及注册文件通过网络传递给生产者。生产者利用客户端软件确认文件信息,并将信息下载至专用下载器内部,完成对专用下载器的注册操作,并使其获得技术。

④ 在专用下载器的控制下,根据生产者提出的请求次数,客户端软件生成请求授权文件。

⑤ 技术开发者获得请求授权文件,利用IP方软件解析得到请求次数。根据请求次数,技术开发者确定授权次数,最后由IP方软件生成授权文件,并传递给生产者。

具有技术保护功能的单片机程序固化系统设计

图2系统信息传输示意图

下面将对系统的主要操作进行详细阐述(鉴于请求与应答是一对互补的处理操作,因此仅对请求操作进行叙述)。

2加密算法设计

加密操作完成对技术代码的加密处理,使其失去本来面目,令黑客不能得到代码明文,从而保护IP方知识产权。该操作对整个系统功能的实现具有至关重要的作用,因此在加密方法的选择上一定要认真对待。如果加密方法设计不当,不但不能保护知识产权,还会影响产品单片机功能的实现。

加密运算的两种基本特性是保密性与可逆性。置换密码与序列密码恰恰具有这种特性,因此设计的加密方法由这两种密码算法结合而成。置换密码是指将明文中的字母顺序重新排列,但字母本身不变,由此形成密文。换句话说,明文与密文所使用的字母相同,只是它们的排列顺序不同[1]。序列密码体制是指将明文序列P与密钥序列K按照序列的基本单位进行位对位运算(如模二加)而形成密文的一种密码体制[2]。

置换密码基于既定的置换表进行加密处理。序列密码需要加密初始参数,该参数由技术开发者随机确定。加密初始参数经过一定运算后得到加密密钥。在加密过程中,首先利用置换表对明文进行置换处理,然后利用加密密钥进行模二加运算,最终得到密文。

加密操作的对象是包含技术代码的BIN文件,而不是HEX文件。HEX文件包含地址信息,而BIN文件只包括代码数据。在烧写或者下载技术代码时,不需要用户指定地址[3]。因此技术开发完成后,如果只有HEX文件,没有BIN文件,技术开发者需要借助其他工具将HEX文件转换为BIN文件,然后再进行加密。具体流程如图3所示。

具有技术保护功能的单片机程序固化系统设计

图3 加密操作示意图

其中,Code_Original是需要进行加密处理的代码,以字节为单位;Code_Replace是经过置换加密处理后得到的置换代码;i、code是加密过程中引入的局部变量;Lock_Encrypt为异或加密的加密密钥;Code_Encrypt[]是用于保存密文的缓冲区。

3请求与下载

请求与下载操作是介于客户端软件和专用下载器之间的操作,两者借助USB线进行信息的上传与下载。

3.1请求操作

请求操作分2种:请求注册和请求授权,目的是生成请求信息。该操作必须在专用下载器的控制之下,由客户端软件完成。首先由客户端软件下传请求命令,专用下载器收到命令后回复控制信息。客户端软件需要对控制信息进行验证,然后从中提取所需信息,结合生产者在软件界面上填写的请求信息生成相应的请求文件。

由专用下载器上传的控制信息包括序列号、验证码、累计授权次数、可用次数以及版本号。序列号初始为随机值,专用下载器完成注册后才得到真正的序列号;验证码包括注册验证码以及授权验证码,由专用下载器随机生成,可以由请求文件传递至相应的应答文件。应答文件中只有包含了正确的验证码信息才可以对专用下载器进行信息下载。可用下载次数指专用下载器还可以对产品单片机进行程序固化的次数。利用累计授权次数减去可用下载次数就是产品的实际生产量。版本号用于标示技术的升级更新。

3.2下载操作

客户端软件将应答文件以及技术文件通过USB线传递到专用下载器中,专用下载器对文件信息进行处理。

注册处理:注册文件信息下载至专用下载器中,专用下载器首先对注册验证码信息进行校验之后,提取文件中的序列号信息,完成注册操作。然后修改注册验证码信息,为下一次操作做准备。因此1个注册文件仅可以完成1次注册。

技术处理:技术文件信息下载至专用下载器中,专用下载器收到信息后,首先将其保存在外部存储器AT45DB041B中。然后提取技术信息中的序列号与专用下载器注册的序列号进行比较,如果相同则继续提取版本号信息,否则专用下载器清空外部存储器中的信息,并给出警告信息提示。

授权处理:授权文件信息下载至专用下载器中,专用下载器依次对授权验证码、序列号、版本号信息进行验证。如果验证通过,专用下载器提取授权次数信息完成授权操作;否则授权失败。授权成功后,可用次数以及累积授权次数都会增加,增量为本次授权次数。授权验证码信息也会改变,为下一次操作做准备。

4程序固化

专用下载器将技术信息固化至产品单片机Flash中的过程称为程序固化。该操作是系统操作的最后一步,也是非常重要的一步。如果信息在此过程中遭到泄露,则前面的一切操作都是毫无意义的。

由于ATmega系列单片机是高性能、低功耗的8位AVR微处理器,具有先进的RISC结构、非易失性程序和数据存储器,可以通过片上Boot Loader程序实现在系统内编程,支持SPI串行编程,支持对熔丝位、锁定位进行编程[4]。本系统充分利用ATmega系列单片机的上述特性,保护产品单片机内部程序代码的安全。另外,所有ATmega系列单片机都具有1个3字节大小的标识码,用来区分器件型号,比如ATmega169的标识码是0x1E9405。该代码可以通过串行编程模式读取,进而对产品单片机进行甄别。在本系统中,专用下载器的主控制器采用ATmega169,通过SPI总线对产品单片机进行程序固化,具体固化流程如图4所示。

将技术信息下传完毕后,专用下载器编程产品单片机锁定位为“0x00”。其作用是,在并行和SPI/JTAG串行编程模式中Flash和EEPROM的进一步编程及验证被禁止,锁定位和熔丝位被锁定[5]。只有擦除产品单片机内部的程序,才能对其进行重新编程或其他操作,从而有效防止黑客利用编程指令读取产品单片机中的信息。

具有技术保护功能的单片机程序固化系统设计

图4程序固化流程

程序固化结束后,产品单片机的Boot程序通过运行“JMP”命令将程序指针指向Flash区起始处,启动主程序运行。如果在程序固化过程中出现意外情况,专用下载器会清除已经固化至产品单片机中的信息,停止固化操作。

5总结与展望

本系统同时服务于IP方和生产者。生产者是IP方的客户。两者处于不同的地理位置,通过网络进行各种信息传输,从而实现了远程控制。注册使得生产者取得可以购买IP方技术的资格,加密使IP方的知识产权得到保护,授权使两者基于生产量进行合理的利益分配。解决了双方在技术转让过程中的尴尬,利于技术成果的快速转化。

目前的系统为“单机版”系统,IP方与生产者各自操作1个软件,进行信息交流。系统开发者将继续致力于“网络化”系统的开发,客户端软件和IP方软件不再是拘泥于一方的软件,而是以一个网站的形式为客户及IP方提供服务。客户可以在网上填写必要的信息,向IP方提出技术请求。经IP方同意,并且网上付费之后,客户在规定次数内使用技术。该设计思想类似于网上购物,将基于B/S结构实现。

提醒:《具有技术保护功能的单片机程序固化系统设计》最后刷新时间 2024-03-14 00:57:23,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《具有技术保护功能的单片机程序固化系统设计》该内容的真实性请自行鉴别。