一种基于MD5算法的FPGA加密方法及装置制造方法及图纸

技术编号:23318219 阅读:21 留言:0更新日期:2020-02-11 18:55
本发明专利技术涉及一种基于MD5算法的FPGA加密方法及装置,步骤为:建立初始化数据;根据初始化数据和MD5消息摘要算法,计算检验和数组;获取FPGA校验和;比对检验和数组与FPGA校验和,若结果一致,FPGA进入正常工作状态;若不一致,FPGA进入空闲状态。加密装置包括:建立单元,用于建立初始化数据;计算单元,用于根据建立单元建立的初始化数据和MD5消息摘要算法,计算检验和数组;获取单元,用于获取FPGA校验和;比对单元,用于比对计算单元计算的检验和数组与获取单元获取的FPGA校验和;若结果一致,则FPGA进入正常工作状态;若不一致,则进入空闲状态;FPGA校验和通过串口通信方式获取。本发明专利技术的优点是,可实现对可编程逻辑器件的知识产权保护、版本管控、使用范围管控。

A FPGA encryption method and device based on MD5 algorithm

【技术实现步骤摘要】
一种基于MD5算法的FPGA加密方法及装置
本专利技术属于FPGA数据流的加解密领域,具体涉及一种基于MD5算法的FPGA加密方法及装置。
技术介绍
在自主开发的可编程逻辑(FPGA)项目中,需要对可编程逻辑使用的数量及使用的范围进行控制,这里需要对可编程逻辑进行加密以便达到可编程逻辑内的知识产权得到有效控制;需要对FPGA进行加密以验证逻辑版本的正确性和控制FPGA的使用。然而目前并没有一种便捷的方式来控制FPGA的使用范围,同时可以快速判断FPGA内部的软件版本。本专利技术技术方案旨在解决上述问题。现有中国专利文件CN201910364922.3公布了一种FPGA加密码流的解密装置及方法,其主要技术方案为:一种FPGA加密码流的解密装置及方法,该装置包括:输入模块,接收数据码流,若所述数据码流为加密码流,则在所述加密码流加入密钥选择指令;数据整合模块,接收并收集所述输入模块传输的不同位宽的加密码流;密钥存储模块,接收所述输入模块传输的密钥选择指令,根据所述密钥选择指令选择相应的密钥;解密模块,接收所述密钥并生成解密密钥,对所述加密码流进行解密生成解密码流;数据拆分模块,对所述解密码流进行拆分输出。与本专利技术技术方案不同。
技术实现思路
本专利技术的目的是解决上述问题,提供一种基于MD5算法的FPGA加密方法及装置,可实现对可编程逻辑器件的知识产权保护、版本管控、使用范围管控。为实现上述目的,本专利技术提供如下技术方案:一种基于MD5算法的FPGA加密方法,包括以下步骤:建立初始化数据;根据所述初始化数据和MD5消息摘要算法,计算检验和数组;获取FPGA校验和;比对所述检验和数组与所述FPGA校验和;若一致,所述FPGA进入正常工作状态;若不一致,所述FPGA进入空闲状态。一种基于MD5算法的FPGA加密装置,包括:建立单元,用于建立初始化数据;计算单元,用于根据所述建立单元建立的初始化数据和MD5消息摘要算法,计算检验和数组;获取单元,用于获取FPGA校验和;比对单元,用于比对所述计算单元计算的检验和数组与所述获取单元获取的FPGA校验和;若比对结果一致,则所述FPGA进入正常工作状态;若不一致,则所述FPGA进入空闲状态。进一步的,所述FPGA校验和通过串口通信方式获取。进一步的,所述加密装置还包括存储单元,用于储存所述检验和数组。进一步的,所述检验和数组储存于只读存储器中。进一步的,所述初始化数据包括软件版本、出场时间、出厂地点、工作地点、项目代号、计划生命周期。与现有技术相比,本专利技术的有益效果在于:本专利技术可以对初始化的数据进行定制化设计;可以对四个原始数据进行定制化设计;可以适应FPGA的使用;在使用中无法获得加密信息,无法使用数据轮询方式进行破解。能够便捷地对可编程逻辑器件的知识产权进行保护、控制FPGA的使用范围,同时可以快速判断FPGA内部的软件版本。附图说明为了更清楚地说明本专利技术实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是为了更清楚地说明本专利技术实施例或现有技术中的技术方案,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术技术方案系统示意图;图2为本专利技术具体的校验值硬件化状态图;图3为本专利技术具体的工作模式状态图。具体实施方式为了使本领域技术人员更好地理解本专利技术的技术方案能予以实施,下面结合具体实施例对本专利技术作进一步说明,但所举实施例只作为对本专利技术的说明,不作为对本专利技术的限定。如图1-3所示的一种基于MD5算法的FPGA加密方法及装置,在编程模式下,根据FPGA使用的范围或FPGA内部软件版本根据特定的MD5算法进行运算得到固定的校验值并将其注入在FPGA或FPGA内部。在加载模式下,使用串口将特征码输入FPGA或FPGA内部,只有特征码与编码模式下运算出的校验值完全相同时,FPGA才可以正常工作。本专利技术的原理如附图1所示:利用系统或者个人要求,构造初始化数据及原始数据,利用上位机软件对数据进行运算获得校验和,将校验和写入FPGA或FPGA内部ROM空间等待比对,工作时通过已知信息计算校验和并且将校验和通过串口方式输入FPGA或FPGA内部,FPGA或FPGA内部通过比对ROM中的校验和信息与输入的校验和信息是否一致来决定FPGA或者FPGA内部是否可以正常工作。一种基于MD5算法的FPGA加密方法,具体采取以下步骤实施:步骤一:校验值初始化根据系统预先设定的FPGA工作场景,设定初始化的数据,该数据的长度为512bits,该数据可以根据FPGA工作场景或FPGA版本进行自定义规划,具体操作为:将该数据划分为16个32bits长度的数据分别表示不同的含义,如下表1所示:表1初始化四个原始数据A=32’h00000618、B=32’hefcdab89、C=32′h98badcfe及D=32′h10325476。建立一个常数表,其中每个数据的长度都为32bits,建造方式如公式(1)所示:根据公式(2)中运算关系进行校验和的运算:A1=B1+(((A1+Function(B1,C1,D1)+M(k)+T(i))<<<s),i=1,2…64A1=D1,B1=A1,C1=B1,D1=C1公式(2)其中A1、B1、C1及D1的初值为A、B、C及D,其中i,k,s之间的关系如附录a所示:其中Function(X,Y,Z)的具体表达式如公式(3)所示:Function(X,Y,Z)=X^Y^Z,i=33,34,…,48最终计算的校验和如公式(4)所示:A1=A1+A,B1=B1+B,C1=c1+C,D1=D1+D公式(4)最终校验和由公式(4)计算结果拼接而成一个128bits的数据,如公式(5)所示:checksum=[A1,B1,C1,D1]公式(5)步骤二:校验值硬件化在FPGA或FPGA内部设计过程中如图2所示,根据相关配置项初始化设定,在上位机中输入初始化数据获得获得对应FPGA或FPGA内部校验和,利用该校验和生成新的逻辑,利用后端设计工具生成网表文件供FPGA生产商使用,或者烧写相应的逻辑至FPGA内部的ROM空间进行储存。这样保证生产出的FPGA内部或者FPGA中储存有计算好的校验和数据。在FPGA或者FPGA内部设计整个FPGA使能模块,只有读取的ROM中的数据与输入的校验和信息完全一致时才能使能整个FPGA或FPGA内部,否则FPGA或FPGA内部无法正常工作。步骤三:工作模式在实际的应用过程中如图3所示,根据已知的信息,进行校验和计算,获得校验和信息后。查询FPGA工作状态,在本文档来自技高网...

【技术保护点】
1.一种基于MD5算法的FPGA加密方法,其特征在于,包括以下步骤:/n建立初始化数据;/n根据所述初始化数据和MD5消息摘要算法,计算检验和数组;/n获取FPGA校验和;/n比对所述检验和数组与所述FPGA校验和;/n若一致,所述FPGA进入正常工作状态;若不一致,所述FPGA进入空闲状态。/n

【技术特征摘要】
1.一种基于MD5算法的FPGA加密方法,其特征在于,包括以下步骤:
建立初始化数据;
根据所述初始化数据和MD5消息摘要算法,计算检验和数组;
获取FPGA校验和;
比对所述检验和数组与所述FPGA校验和;
若一致,所述FPGA进入正常工作状态;若不一致,所述FPGA进入空闲状态。


2.根据权利要求1所述的一种基于MD5算法的FPGA加密方法,其特征在于,所述FPGA校验和通过串口通信方式获取。


3.根据权利要求1所述的一种基于MD5算法的FPGA加密方法,其特征在于,所述检验和数组储存于只读存储器中。


4.根据权利要求1至3任一项所述的一种基于MD5算法的FPGA加密方法,其特征在于,所述初始化数据包括软件版本、出场时间、出厂地点、工作地点、项目代号、计划生命周期。


5.一种基于MD5算法的FPGA加密装置,其特征在于,包括:
建立单元,用于建立初始化数据;

【专利技术属性】
技术研发人员:吴小光李威力
申请(专利权)人:西安极光航空航天科技有限公司
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1