可编程器件、标识信息、编程数据流的配置方法及装置的制造方法
【技术领域】
[0001] 本发明涉及电子技术领域,尤其涉及一种可编程器件、标识信息、编程数据流的配 置方法及装置。
【背景技术】
[0002] 随可编程器件的问世以来,其在电子工业中得到了日渐广泛的应用。随着设计规 模的上升和器件价格的下降,设计成本在系统实现中所占比重越来越大。而越来越多的安 全问题,正日益威胁着生活、经济甚至国防等安全方面:无论是登机、关门,还是设计电路、 发射卫星、导弹;安全都成了电子设计领域密切关注的问题。其中FPGA(Fie Id - Programmable Gate Array,现场可编程门阵列)是一种用途最广泛的可编程器件。
[0003] 当今设计领域所面临的主要威胁包括反向工程、过度构建和克隆。反向工程的作 用是窃取者可以更快的完成设计,并且可以将研发成本最小化,这是电子行业最普遍的威 胁。过度构建是外包业务模型的一大隐患,在这种情况下,产品未授权过度构建,然后在未 得到原始设备制造商许可的情况下通过其他渠道销售。最大的问题是,一旦这些产品进入 市场,它将造成非常严重的后果。通常,过度构建的产品能够以更快的速度面市,并且销售 的价格也更低;克隆者获得的明显利益是,他们无需花费任何研发成本,并且极大地加快了 克隆产品的上市。
[0004] 如何对编程数据流进行保护是解决上述系列问题的关键。现有的解决方案或者非 常复杂,所占用系统资源过多,或者芯片本身成本过高,或者实现不方便等等。这些都为用 户的使用带来了不便。
【发明内容】
[0005] 本发明提供的可编程器件、标识信息、编程数据流的配置方法及装置,解决现有技 术中无法实现编程数据流和可编程器件的对应问题。
[0006 ]为解决上述技术问题,本发明采用以下技术方案:
[0007] -种可编程器件的配置方法,包括:
[0008] 导入编程数据流,读取所述编程数据流携带的标识信息,并从可编程器件内嵌或 外接的非易失性存储单元中读取可编程器件的标识信息;
[0009] 将所述编程数据流携带的标识信息与所述可编程器件的标识信息进行比较;
[0010] 若两者相匹配,则根据所述编程数据流配置所述可编程器件。
[0011] -种标识信息的配置方法,包括:
[0012] 读取可编程器件出厂配置的识别码作为待加密数据,或者自定义待加密数据;
[0013] 采用预设安全算法对所述待加密数据进行加密后得到所述可编程器件的标识信 息,存储在所述可编程器件内嵌或外接的非易失性存储单元中。
[0014] 在一些实施例中,采用预设安全算法对所述待加密数据进行加密后得到所述可编 程器件的标识信息包括:
[0015] 根据预设的字符单元与碱基单元的对应关系,以及碱基单元与多进制数据单元的 对应关系,将包括预设的字符单元的待加密数据编码成多进制序列密文,所述多进制序列 密文包括至少一个多进制数据单元,所述字符单元包括至少一个字符,所述碱基单元包括 至少一个DNA碱基;将所述多进制序列密文作为所述可编程器件的标识信息,或者将采用预 设辅助算法对所述多进制序列密文进行加密后得到的密文作为所述可编程器件的标识信 息。
[0016] 在一些实施例中,根据预设的字符单元与碱基单元的对应关系,以及碱基单元与 多进制数据单元的对应关系,将包括预设的字符单元的待加密数据编码成多进制序列密 文,具体为:
[0017] 根据预设的字符单元与碱基单元的对应关系,将所述待加密数据编码成DNA单链 密文;根据碱基单元与多进制数据单元的对应关系,将所述DNA单链密文编码成多进制序列 密文;
[0018] 或者,根据预设的字符单元与碱基单元的对应关系,以及碱基单元与多进制数据 单元的对应关系,逐个将所述待加密数据中的字符单元编码成多进制数据单元;并由各多 进制数据单元组成所述多进制序列密文。
[0019] 在一些实施例中,根据碱基单元与多进制数据单元的对应关系,将所述DNA单链密 文编码成多进制序列密文之前,还包括:
[0020] 根据碱基配对原则,将所述DNA单链密文转换成与其互补的另一 DNA单链密文,将 所述DNA单链密文替换成所述另一 DNA单链密文进入后续步骤。
[0021] 在一些实施例中,根据预设的字符单元与碱基单元的对应关系,以及碱基单元与 多进制数据单元的对应关系,逐个将所述待加密数据中的字符单元编码成多进制数据单 元,包括:
[0022] 根据预设的字符单元与碱基单元的对应关系,以及碱基单元与多进制数据单元的 对应关系,逐个将所述待加密数据中的字符单元编码成与字符单元对应的碱基单元所对应 的多进制数据单元,或者逐个将所述待加密数据中的字符单元编码成与字符单元对应的碱 基单元互补的另一碱基单元对应的多进制数据单元。
[0023] 在一些实施例中,所述预设的字符单元与碱基单元的对应关系中,若预设的字符 单兀有X个,与各预设的字符单兀对应的碱基单兀为:从DNA碱基群中任取出Z个DNA碱基按 照不同的顺序排序得到,所述DNA碱基群由Y种DNA碱基且每种Z个组成,Z 2 1,4 2 Y 2 1,1 < X <YZ。
[0024] 在一些实施例中,所述预设的字符单元与碱基单元的对应关系中,若预设的字符 单元分别为26个字母中的各个字母、0至9中的各个数字、空格、逗号、句号、则与各预设的 字符单元对应的碱基单元为:从DNA碱基群中任取出3个DNA碱基按照不同的顺序排序得到, 所述DNA碱基群由4种DNA碱基且每种3个组成。
[0025] 在一些实施例中,所述碱基单元与多进制数据单元的对应关系中,与各碱基单元 中的各碱基对应的多进制数据单元包括两个比特位。
[0026] -种编程数据流的配置方法,包括:
[0027] 获取可编程器件的标识信息,以及原编程数据流;
[0028] 根据所述标识信息对所述原编程数据流进行处理,得到新的编程数据流,所述新 的编程数据流携带所述标识信息,所述新的编程数据流用于对所述可编程器件进行编程。
[0029] 在一些实施例中,所述获取可编程器件的标识信息包括:
[0030] 从所述可编程器件内嵌或外接的非易失性存储单元中读取所述可编程器件的标 识信息;
[0031] 或者按照如下方式生成所述可编程器件的标识信息:读取所述可编程器件出厂配 置的识别码作为待加密数据,或者自定义待加密数据;采用预设安全算法对所述待加密数 据进行加密后得到所述可编程器件的标识信息。
[0032] -种可编程器件的配置装置,包括:
[0033] 导入模块,用于导入编程数据流;
[0034] 第一读取模块,用于读取所述编程数据流携带的标识信息;
[0035] 第二读取模块,用于从可编程器件内嵌或外接的非易失性存储单元中读取可编程 器件的标识信息;
[0036] 比较模块,用于将所述编程数据流携带的标识信息与所述可编程器件的标识信息 进行比较;
[0037] 以及,器件配置模块,用于所述比较模块的比较结果为所述编程数据流携带的标 识信息与所述可编程器件的标识信息相匹配的条件下,根据所述编程数据流配置所述可编 程器件。
[0038] -种标识信息的配置装置,包括:
[0039] 第三读取模块,用于读取可编程器件出厂配置的识别码作为待加密数据;或者,自 定义模块,用于自定义待加密数据;
[0040] 以及,加密处理模块,用于采用预设安全算法对所述待加密数据进行加密后得到 所述可编程器件的标识信息;
[0041] 以及,存储模块,用于将所述算法模块得到的所述可编程器件的标识信息存储在 所述可编程器件内嵌或外接的非易失性存储单元中。
[0042]在一些实施例中,所述加密处理模块具体用于根据预设的字符单元与碱基单元的 对应关系,以及碱基单元与多进制数据单元的对应关系,将包括预设的字符单元的待加密 数据编码成多进制序列密文,所述多进制序列密文包括至少一个多进制数据单元,所述字 符单元包括至少一个字符,所述碱基单元包括至少一个DNA碱基;将所述多进制序列密文作 为所述可编程器件的标识信息,或者将采用预设辅助算法对所述多进制序列密文进行加密 后得到的密文作为所述可编程器件的标识信息。
[0043]在一些实施例中,所述加密处理模块包括第一加密子模块和/或第二加密子模块: [0044]第一加密子模块用于根据预设的字符单元与碱基单元的对应关系,将所述待加密 数据编码成DNA单链密文;根据碱基单元与多进制数据单元的对应关系,将所述DNA单链密 文编码成多进制序列密文;
[0045] 第二加密子模块用于根据预设的字符单元与碱基单元的对应关系,以及碱基单元 与多进制数据单元的对应关系,逐个将所述待加密数据中的字符单元编码成多进制数据单 元;并由各多进制数据单元组成所述多进制序列密文。
[0046] 在一些实施例中,第一加密子模块还用于在根据碱基单元与多进制数据单元的对 应关系,将所述DNA单链密文编码成多进制序列密文之前,根据碱基配对原则,将所述DNA单 链密文转换成与其互补的另一 DNA单链密文,将所述DNA单链密文替换成所述另一 DNA单链 密文进入后续步骤。
[0047] 在一些实施例中,第二加密子模块具体用于根据预设的字符单元与碱基单元的对 应关系,以及碱基单元与多进制数据单元的对应关系,逐个将所述待加密数据中的字符单 元编码成与字符单元对应的碱基单元所对应的多进制数据单元,或者逐个将所述待加密数 据中的字符单元编码成与字符单元对应的碱基单元互补的另一碱基单元对应的多进制数 据单元。
[0048] 在一些实施例中,该标识信息的配置装置,还包括保存模块,用于保存所述预设的 字符单元与碱基单元的对应关系,所述预设的字符单元与碱基单元的对应关系中,若预设 的字符单兀有X个,贝U与各预设的字符单兀对应的碱基单兀为:从DNA碱基群中任取出Z个 DNA碱基按照不同的顺序排序得到,所述DNA碱基群由Y种DNA碱基且每种Z个组成,Z 2 1,4 2 Y> 1,1 <X< Yz;
[0049] 还用于保存所述碱基单元与多进制数据单元的对应关系,所述碱基单元与多进制 数据单元的对应关系中,与各碱基单元中的各碱基对应的多进制数据单元包括两个比特 位。
[0050] -种编程数据流的配置装置,包括:
[0051 ]第一获取模块,用于获取可编程器件的标识信息;
[0052]第二获取模块,用于获取原编程数据流;
[0053]数据流处理模块,用于根据所述标识信息对所述原编程数据流进行处理,得到新 的编程数据流,所述新的编程数据流携带所述标识信息,所述新的编程数据流用于对所述 可编程器件进行编程。
[0054] 在一些实施例中,所述第一获取模块包括:
[0055] 第四读取模块,用于