CN105550541B - 可编程器件、标识信息、编程数据流的配置方法及装置 - Google Patents
可编程器件、标识信息、编程数据流的配置方法及装置 Download PDFInfo
- Publication number
- CN105550541B CN105550541B CN201510875108.XA CN201510875108A CN105550541B CN 105550541 B CN105550541 B CN 105550541B CN 201510875108 A CN201510875108 A CN 201510875108A CN 105550541 B CN105550541 B CN 105550541B
- Authority
- CN
- China
- Prior art keywords
- programming device
- identification information
- programming
- cell
- base units
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 230000008676 import Effects 0.000 claims abstract description 6
- 239000002585 base Substances 0.000 claims description 227
- 108020004414 DNA Proteins 0.000 claims description 122
- 230000000295 complement effect Effects 0.000 claims description 15
- 238000013475 authorization Methods 0.000 claims description 13
- 238000012545 processing Methods 0.000 claims description 13
- 108091027569 Z-DNA Proteins 0.000 claims description 6
- 239000000203 mixture Substances 0.000 claims description 6
- 239000003513 alkali Substances 0.000 claims description 5
- 238000005111 flow chemistry technique Methods 0.000 claims description 4
- 238000011084 recovery Methods 0.000 claims 1
- 235000013616 tea Nutrition 0.000 claims 1
- 238000013461 design Methods 0.000 description 37
- 230000006870 function Effects 0.000 description 7
- 230000013011 mating Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- UYTPUPDQBNUYGX-UHFFFAOYSA-N guanine Chemical compound O=C1NC(N)=NC2=C1N=CN2 UYTPUPDQBNUYGX-UHFFFAOYSA-N 0.000 description 4
- 239000000047 product Substances 0.000 description 4
- 229930024421 Adenine Natural products 0.000 description 2
- GFFGJBXGBJISGV-UHFFFAOYSA-N Adenine Chemical compound NC1=NC=NC2=C1N=CN2 GFFGJBXGBJISGV-UHFFFAOYSA-N 0.000 description 2
- IQFYYKKMVGJFEH-XLPZGREQSA-N Thymidine Chemical compound O=C1NC(=O)C(C)=CN1[C@@H]1O[C@H](CO)[C@@H](O)C1 IQFYYKKMVGJFEH-XLPZGREQSA-N 0.000 description 2
- 229960000643 adenine Drugs 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 101000782621 Bacillus subtilis (strain 168) Biotin carboxylase 2 Proteins 0.000 description 1
- DWRXFEITVBNRMK-UHFFFAOYSA-N Beta-D-1-Arabinofuranosylthymine Natural products O=C1NC(=O)C(C)=CN1C1C(O)C(O)C(CO)O1 DWRXFEITVBNRMK-UHFFFAOYSA-N 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- CZPWVGJYEJSRLH-UHFFFAOYSA-N Pyrimidine Chemical compound C1=CN=CN=C1 CZPWVGJYEJSRLH-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- IQFYYKKMVGJFEH-UHFFFAOYSA-N beta-L-thymidine Natural products O=C1NC(=O)C(C)=CN1C1OC(CO)C(O)C1 IQFYYKKMVGJFEH-UHFFFAOYSA-N 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 229910052739 hydrogen Inorganic materials 0.000 description 1
- 239000001257 hydrogen Substances 0.000 description 1
- 239000013067 intermediate product Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 229940104230 thymidine Drugs 0.000 description 1
- 210000001541 thymus gland Anatomy 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/74—Reverse engineering; Extracting design information from source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/123—DNA computing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0806—Configuration setting for initial configuration or provisioning, e.g. plug-and-play
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Computer Hardware Design (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Bioinformatics & Computational Biology (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Genetics & Genomics (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- Biomedical Technology (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开的可编程器件、标识信息、编程数据流的配置方法及装置,可编程器件的配置方法包括:导入编程数据流,读取所述编程数据流携带的标识信息,并从可编程器件内嵌或外接的存储单元中读取可编程器件的标识信息;将所述编程数据流携带的标识信息与所述可编程器件的标识信息进行比较;若两者相匹配,则根据所述编程数据流配置所述可编程器件。本发明解决现有技术中无法实现编程数据流和可编程器件的对应问题。
Description
技术领域
本发明涉及电子技术领域,尤其涉及一种可编程器件、标识信息、编程数据流的配置方法及装置。
背景技术
随可编程器件的问世以来,其在电子工业中得到了日渐广泛的应用。随着设计规模的上升和器件价格的下降,设计成本在系统实现中所占比重越来越大。而越来越多的安全问题,正日益威胁着生活、经济甚至国防等安全方面:无论是登机、关门,还是设计电路、发射卫星、导弹;安全都成了电子设计领域密切关注的问题。其中FPGA(Field-Programmable Gate Array,现场可编程门阵列)是一种用途最广泛的可编程器件。
当今设计领域所面临的主要威胁包括反向工程、过度构建和克隆。反向工程的作用是窃取者可以更快的完成设计,并且可以将研发成本最小化,这是电子行业最普遍的威胁。过度构建是外包业务模型的一大隐患,在这种情况下,产品未授权过度构建,然后在未得到原始设备制造商许可的情况下通过其他渠道销售。最大的问题是,一旦这些产品进入市场,它将造成非常严重的后果。通常,过度构建的产品能够以更快的速度面市,并且销售的价格也更低;克隆者获得的明显利益是,他们无需花费任何研发成本,并且极大地加快了克隆产品的上市。
如何对编程数据流进行保护是解决上述系列问题的关键。现有的解决方案或者非常复杂,所占用系统资源过多,或者芯片本身成本过高,或者实现不方便等等。这些都为用户的使用带来了不便。
发明内容
本发明提供的可编程器件、标识信息、编程数据流的配置方法及装置,解决现有技术中无法实现编程数据流和可编程器件的对应问题。
为解决上述技术问题,本发明采用以下技术方案:
一种可编程器件的配置方法,包括:
导入编程数据流,读取所述编程数据流携带的标识信息,并从可编程器件内嵌或外接的存储单元中读取可编程器件的标识信息;
将所述编程数据流携带的标识信息与所述可编程器件的标识信息进行比较;
若两者相匹配,则根据所述编程数据流配置所述可编程器件。
在一些实施例中,所述存储单元为易失性存储单元。
在一些实施例中,所述易失性存储单元断电恢复后,还包括通过以下方式给所述可编程器件配置标识信息:
读取所述可编程器件出厂配置的识别码作为待加密数据,或者自定义待加密数据;采用预设安全算法对所述待加密数据进行加密后得到所述可编程器件的标识信息,存储在所述可编程器件内嵌或外接的易失性存储单元中。
一种标识信息的配置方法,包括:
读取可编程器件出厂配置的识别码作为待加密数据,或者自定义待加密数据;
采用预设安全算法对所述待加密数据进行加密后得到所述可编程器件的标识信息,存储在所述可编程器件内嵌或外接的存储单元中。
在一些实施例中,存储在所述可编程器件内嵌或外接的存储单元中包括:
若所述可编程器件内嵌有非易失性存储单元,则存储在所述非易失性存储单元;若所述可编程器件不具有内嵌的非易失性存储单元,则存储在所述可编程器件内嵌或外接的易失性存储单元;
或者,直接存储在所述可编程器件内嵌或外接的易失性存储单元。
在一些实施例中,采用预设安全算法对所述待加密数据进行加密后得到所述可编程器件的标识信息包括:
根据预设的字符单元与碱基单元的对应关系,以及碱基单元与多进制数据单元的对应关系,将包括预设的字符单元的待加密数据编码成多进制序列密文,所述多进制序列密文包括至少一个多进制数据单元,所述字符单元包括至少一个字符,所述碱基单元包括至少一个DNA碱基;将所述多进制序列密文作为所述可编程器件的标识信息,或者将采用预设辅助算法对所述多进制序列密文进行加密后得到的密文作为所述可编程器件的标识信息。
在一些实施例中,根据预设的字符单元与碱基单元的对应关系,以及碱基单元与多进制数据单元的对应关系,将包括预设的字符单元的待加密数据编码成多进制序列密文,具体为:
根据预设的字符单元与碱基单元的对应关系,将所述待加密数据编码成DNA单链密文;根据碱基单元与多进制数据单元的对应关系,将所述DNA单链密文编码成多进制序列密文;
或者,根据预设的字符单元与碱基单元的对应关系,以及碱基单元与多进制数据单元的对应关系,逐个将所述待加密数据中的字符单元编码成多进制数据单元;并由各多进制数据单元组成所述多进制序列密文。
在一些实施例中,根据碱基单元与多进制数据单元的对应关系,将所述DNA单链密文编码成多进制序列密文之前,还包括:
根据碱基配对原则,将所述DNA单链密文转换成与其互补的另一DNA单链密文,将所述DNA单链密文替换成所述另一DNA单链密文进入后续步骤。
在一些实施例中,根据预设的字符单元与碱基单元的对应关系,以及碱基单元与多进制数据单元的对应关系,逐个将所述待加密数据中的字符单元编码成多进制数据单元,包括:
根据预设的字符单元与碱基单元的对应关系,以及碱基单元与多进制数据单元的对应关系,逐个将所述待加密数据中的字符单元编码成与字符单元对应的碱基单元所对应的多进制数据单元,或者逐个将所述待加密数据中的字符单元编码成与字符单元对应的碱基单元互补的另一碱基单元对应的多进制数据单元。
在一些实施例中,所述预设的字符单元与碱基单元的对应关系中,若预设的字符单元有X个,与各预设的字符单元对应的碱基单元为:从DNA碱基群中任取出Z个DNA碱基按照不同的顺序排序得到,所述DNA碱基群由Y种DNA碱基且每种Z个组成,Z≥1,4≥Y≥1,1≤X≤YZ。
在一些实施例中,所述预设的字符单元与碱基单元的对应关系中,若预设的字符单元分别为26个字母中的各个字母、0至9中的各个数字、空格、逗号、句号、@;则与各预设的字符单元对应的碱基单元为:从DNA碱基群中任取出3个DNA碱基按照不同的顺序排序得到,所述DNA碱基群由4种DNA碱基且每种3个组成。
一种编程数据流的配置方法,包括:
从可编程器件内嵌或外接的易失性存储单元中读取所述可编程器件的标识信息,以及原编程数据流;
根据所述标识信息对所述原编程数据流进行处理,得到新的编程数据流,所述新的编程数据流携带所述标识信息,所述新的编程数据流用于对所述可编程器件进行编程。
一种可编程器件的配置装置,包括:
导入模块,用于导入编程数据流;
第一读取模块,用于读取所述编程数据流携带的标识信息;
第二读取模块,用于从可编程器件内嵌或外接的存储单元中读取可编程器件的标识信息;
比较模块,用于将所述编程数据流携带的标识信息与所述可编程器件的标识信息进行比较;
以及,器件配置模块,用于所述比较模块的比较结果为所述编程数据流携带的标识信息与所述可编程器件的标识信息相匹配的条件下,根据所述编程数据流配置所述可编程器件。
在一些实施例中,第二读取模块具体用于从可编程器件内嵌或外接的易失性存储单元中读取可编程器件的标识信息。
在一些实施例中,该可编程器件的配置装置还包括用于在易失性存储单元断电恢复后对所述可编程器件进行标识信息配置的标识配置模块,所述标识配置模块包括:
第三读取模块,用于读取所述可编程器件出厂配置的识别码作为待加密数据;或者,自定义模块,用于自定义待加密数据;
以及,加密处理模块,用于采用预设安全算法对所述待加密数据进行加密后得到所述可编程器件的标识信息;
以及,存储模块,用于将所述算法模块得到的所述可编程器件的标识信息存储在所述可编程器件内嵌或外接的易失性存储单元中。
一种标识信息的配置装置,包括:
第三读取模块,用于读取可编程器件出厂配置的识别码作为待加密数据;或者,自定义模块,用于自定义待加密数据;
以及,加密处理模块,用于采用预设安全算法对所述待加密数据进行加密后得到所述可编程器件的标识信息;
以及,存储模块,用于将所述算法模块得到的所述可编程器件的标识信息存储在所述可编程器件内嵌或外接的存储单元中。
在一些实施例中,所述存储模块具体用于:
若所述可编程器件内嵌有非易失性存储单元,则存储在所述非易失性存储单元;若所述可编程器件不具有内嵌的非易失性存储单元,则存储在所述可编程器件内嵌或外接的易失性存储单元;
或者,直接存储在所述可编程器件内嵌或外接的易失性存储单元。
在一些实施例中,所述加密处理模块具体用于根据预设的字符单元与碱基单元的对应关系,以及碱基单元与多进制数据单元的对应关系,将包括预设的字符单元的待加密数据编码成多进制序列密文,所述多进制序列密文包括至少一个多进制数据单元,所述字符单元包括至少一个字符,所述碱基单元包括至少一个DNA碱基;将所述多进制序列密文作为所述可编程器件的标识信息,或者将采用预设辅助算法对所述多进制序列密文进行加密后得到的密文作为所述可编程器件的标识信息。
在一些实施例中,所述加密处理模块包括第一加密子模块和/或第二加密子模块:
第一加密子模块用于根据预设的字符单元与碱基单元的对应关系,将所述待加密数据编码成DNA单链密文;根据碱基单元与多进制数据单元的对应关系,将所述DNA单链密文编码成多进制序列密文;
第二加密子模块用于根据预设的字符单元与碱基单元的对应关系,以及碱基单元与多进制数据单元的对应关系,逐个将所述待加密数据中的字符单元编码成多进制数据单元;并由各多进制数据单元组成所述多进制序列密文。
在一些实施例中,第一加密子模块还用于在根据碱基单元与多进制数据单元的对应关系,将所述DNA单链密文编码成多进制序列密文之前,根据碱基配对原则,将所述DNA单链密文转换成与其互补的另一DNA单链密文,将所述DNA单链密文替换成所述另一DNA单链密文进入后续步骤。
在一些实施例中,第二加密子模块具体用于根据预设的字符单元与碱基单元的对应关系,以及碱基单元与多进制数据单元的对应关系,逐个将所述待加密数据中的字符单元编码成与字符单元对应的碱基单元所对应的多进制数据单元,或者逐个将所述待加密数据中的字符单元编码成与字符单元对应的碱基单元互补的另一碱基单元对应的多进制数据单元。
在一些实施例中,该标识信息的配置装置,还包括保存模块,用于保存所述预设的字符单元与碱基单元的对应关系,所述预设的字符单元与碱基单元的对应关系中,若预设的字符单元有X个,则与各预设的字符单元对应的碱基单元为:从DNA碱基群中任取出Z个DNA碱基按照不同的顺序排序得到,所述DNA碱基群由Y种DNA碱基且每种Z个组成,Z≥1,4≥Y≥1,1≤X≤YZ;
还用于保存所述碱基单元与多进制数据单元的对应关系,所述碱基单元与多进制数据单元的对应关系中,与各碱基单元中的各碱基对应的多进制数据单元包括两个比特位。
一种编程数据流的配置装置,包括:
第一获取模块,用于从可编程器件内嵌或外接的易失性存储单元中读取所述可编程器件的标识信息;
第二获取模块,用于获取原编程数据流;
数据流处理模块,用于根据所述标识信息对所述原编程数据流进行处理,得到新的编程数据流,所述新的编程数据流携带所述标识信息,所述新的编程数据流用于对所述可编程器件进行编程。
本发明提供的可编程器件、标识信息、编程数据流的配置方法及装置,可编程器件包括但不局限于FPGA。其核心思想是给可编程器件配置标识信息,让编程配置流也携带标识信息,在给可编程器件进行配置之前,先比较所导入的编程数据流携带的标识信息与可编程器件的标识信息是否匹配,若匹配,则说明该可编程器件为授权的器件,根据该编程数据流对该可编程器件正常配置,实现正确的设计功能。因为标识信息具有唯一性,通过本发明能够将编程数据流与可编程器件关联起来,从而实现用户设计只能在授权的可编程器件中被正常编译,保证用户设计不能在其他器件上正确使用,进而保证编程数据流的安全,极大程度上避免了设计被反向工程、过度构建和克隆,形成价格低廉、保密性好而又不占用大量资源的安全解决方案。
可编程器件拥有了标识信息,优选的,该标识信息是DNA单链的一种表达形式,例如该标识信息包括多进制数据单元,该多进制数据单元与DNA单链对应。这样的标识信息带有DNA(生物脱氧核糖核酸)特性,进一步提高了标识信息的安全性。对于授权的可编程器件,该可编程器件的标识信息分别存储在其内嵌或外接的存储单元中,和编程数据流中,从而将设计与可编程器件关联起来,达到设计不能被反向工程、过度构建和克隆的目的。当可编程器件不具有非易失性存储单元时,其标识信息可以存储在其内嵌或外接的易失性存储单元中,在断电恢复后重新生成。
此外,可编程器件的标识信息通过预设安全算法加密得到,该预设安全算法可由用户自定义,满足不同用户的安全需求,真正实现用户可自行控制编程数据流安全等级的目的。该预设安全算法优选的可以写进可编程器件中,从而避免了软件的不安全性。该预设安全算法适用于目前市面上所有的安全算法,如DES、3_DES、AES等算法,从而增加了本发明的普遍性,当然,该预设安全算法也可以是用户自创的算法,比如本发明提供的一种新型的安全算法,根据预设的字符单元与碱基单元的对应关系,以及碱基单元与多进制数据单元的对应关系来实现,能够将包括预设的字符单元的待加密数据编码成多进制序列密文,结合了DNA的特性,并将数学性与生物性相结合,提出一种极具安全性和可操作性的算法,与业界常用的对称密钥、非对称密钥码机制相比,其一,利用DNA的生物特性与可编程器件相结合,从数学的角度实现生物角度的加解密;其二,利用字符单元与碱基单元、碱基单元与多进制数据单元的对应关系对数据加解密,脱离"密钥"的约束,不用再担心密钥被盗;其三,用户可以自定义以上两种对应关系,比如自定义字符单元、自定义碱基单元、自定义碱基单元中碱基的排列顺序等等,真正实现用户对安全等级的不同需求;其四,利用全新的编码方式减少矩阵行列轮换的次数,从而减少加密时间。
本发明可以在可编程器件本体上实现,无需单片机等芯片辅助实现保密功能,方案简洁、易操作,在可编程器件本体上,必要时也只是对可编程器件芯片电路进行微调设计即可实现编程数据流安全保护,电路设计实现难度低、风险低、成本低。对编程数据流的保护能够用较低的成本实现,而且可以通过不同的加密算法实现不同的安全等级,有着灵活性强,普遍性高的优点。
附图说明
图1为本发明一实施例提供的标识信息的配置方法的流程图;
图2为本发明一实施例提供的编程数据流的配置方法的流程图;
图3为本发明一实施例提供的可编程器件的配置方法的流程图;
图4为本发明另一实施例提供的可编程器件的配置方法的流程图;
图5为本发明另一实施例提供的可编程器件的配置方法的流程图。
具体实施方式
本发明提供一种思路,其核心思想是给可编程器件配置标识信息,让编程配置流也携带标识信息,在给可编程器件进行配置之前,先比较所导入的编程数据流携带的标识信息与可编程器件的标识信息是否匹配,若匹配,则说明该可编程器件为授权的器件,根据该编程数据流对该可编程器件正常配置,实现正确的设计功能。通过本发明能够将编程数据流与可编程器件关联起来,从而实现用户设计只能在授权的可编程器件中被正常编译,保证用户设计不能在其他器件上正确使用,进而保证编程数据流的安全,极大程度上避免了设计被反向工程、过度构建和克隆,形成价格低廉、保密性好而又不占用大量资源的安全解决方案。
下面介绍本发明提供的可编程器件的标识信息的配置方法:
图1为本发明一实施例提供的标识信息的配置方法的流程图,如图1所示,可编程器件的标识信息的配置方法包括如下流程:
S101、读取可编程器件出厂配置的识别码作为待加密数据,或者自定义待加密数据。
对于有些可编程器件,在出厂前就已经内置了识别码,出厂后便自带识别码,可以利用可编程器件的配套开发软件,通过外部接口获取可编程器件出厂配置的识别码。优选的,可编程器件出厂配置的识别码是DNA单链的一种表达形式,例如可编程器件出厂配置的识别码包括多进制数据单元,该多进制数据单元与DNA单链对应。
对于没有自带识别码的可编程器件,可通过自定义的方式自定义待加密数据。当然对于具有出厂配置的识别码的一类可编程器件,也可以弃用其出厂配置的识别码,通过自定义的方式自定义待加密数据。
优选的,待加密数据具有唯一性,包括至少一个字符单元,字符单元包括至少一个字符,字符包括但不局限于数字、字母、符号,待加密数据例如是数字、字母、和/或符号组成的一连串字符,待加密数据也可以由0和/或1组成,例如待加密数据为一串二进制数据。
S102、采用预设安全算法对所述待加密数据进行加密后得到所述可编程器件的标识信息,存储在所述可编程器件内嵌或外接的存储单元中。
优选的,步骤S102中,先判断该可编程器件是否内嵌有非易失性存储单元,若内嵌有非易失性存储单元,则存储在该非易失性存储单元;若不具有内嵌的非易失性存储单元,则存储在该可编程器件内嵌或外接的易失性存储单元;
或者步骤S102中直接存储在该可编程器件内嵌或外接的易失性存储单元,不对是否内嵌有非易失性存储单元进行判断。
若存储在易失性存储单元中,在易失性存储单元断电恢复后,还需要重新回到步骤S101,重新给所述可编程器件配置标识信息。
优选的,可编程器件的标识信息是DNA单链的一种表达形式。例如该标识信息包括多进制数据单元,该多进制数据单元与DNA单链对应。
预设安全算法可由用户自定义,预设安全算法可以预先写入可编程器件的安全模块中,或者直接采用可编程器件自带的安全算法;预设安全算法可以是目前市面上任一安全算法,如DES、3_DES、AES等算法,从而增加了本专利的普遍性。
当然,该预设安全算法也可以是用户自创的算法,比如本实施例提供的一种新型的安全算法:
根据预设的字符单元与碱基单元的对应关系,以及碱基单元与多进制数据单元的对应关系,将包括预设的字符单元的待加密数据编码成多进制序列密文,所述多进制序列密文包括至少一个多进制数据单元,所述字符单元包括至少一个字符,所述碱基单元包括至少一个DNA碱基;将所述多进制序列密文作为所述可编程器件的标识信息,或者将采用预设辅助算法对所述多进制序列密文进行加密后得到的密文作为所述可编程器件的标识信息。
预设辅助算法可以是目前市面上任一安全算法,如DES、3_DES、AES等算法。
下面详细介绍本实施例提供的该新型的安全算法:
DNA具有以下特点:a)DNA含有四种碱基:腺嘌呤(A)、鸟嘌呤(G)、胞嘧啶(C)和胸腺嘧啶(T);b)DNA由两条分子长链组成,两条长链在氢键的作用下连接在一起,呈现双螺旋结构,其中每一条分子长链即为一条DNA单链;c)双链的连接方式按照碱基互补配对的原则,即腺嘌呤(A)与胸腺嘧啶(T)始终配对存在,鸟嘌呤(G)和胞嘧啶(C)始终配对存在。利用DNA的以上特点从生物学的角度和数学的角度来保证加密的安全性,同时这种加解密技术速度快。
本实施例提供的该新型的安全算法首先需要建立以下两种对应关系:
第一种对应关系为,预设的字符单元与碱基单元的对应关系。字符单元包括至少一个字符,字符可以是数字、字母或符号。碱基单元包括至少一个DNA碱基。可先定义好预设的字符单元,再为各预设的字符单元配置唯一的碱基单元。由于DNA碱基有以上四种,碱基单元中的碱基种类、碱基个数、排列顺序中的任一者不同,构成的碱基单元就不同,若预设的字符单元的个数较少,比如少于或等于4个,则每个碱基单元可以由一个碱基构成,4种不同的碱基分别组成一个具有唯一性的碱基单元,分别与4个字符单元一一对应。若预设的字符单元的个数较多,为了能够为各个字符单元配置唯一的碱基单元,则其中部分或全部碱基单元由两个或两个以上碱基构成,通过碱基种类、碱基个数、排列顺序的不同配置相应个数的且具有唯一性的碱基单元。优选的,该对应关系中,字符单元与碱基单元满足以下规则:
若预设的字符单元有X个,则与各预设的字符单元对应的碱基单元为:从DNA碱基群中任取出Z个DNA碱基按照不同的顺序排序得到,所述DNA碱基群由Y种DNA碱基且每种Z个组成,Z≥1,4≥Y≥1,1≤X≤YZ。通过该种原则配置碱基单元,能够保证为X个预设的字符单元中的每一个配置具有唯一性的碱基单元。
作为一种实施例,假设预设的字符单元有4个,各字符单元分别为一个数字,分别是:1、2、3、4。则需要配置4个具有唯一性的碱基单元,那么该4个碱基单元可以分别是:A、G、C、T,该对应关系可以如表一,或者,该4个碱基单元可以分别是:AA、GG、GC、CG,该对应关系可以如表二:
表一
预设的字符单元 | 碱基单元 |
1 | A |
2 | G |
3 | C |
4 | T |
表二
预设的字符单元 | 碱基单元 |
1 | AA |
2 | GG |
3 | GC |
4 | CG |
作为一种优选实施例,假设预设的字符单元有40个,各字符单元分别为以下一个字符:26个字母中的各个字符、0至9中的各个数字、空格符号、逗号、.、@;则需要配置40个具有唯一性的碱基单元,那么建立的对应关系可以如表三所示:
表三
A=CGA | B=CCA | C=GTT | D=TTG | E=GGC | F=GGT | G=TTT | H=CGC | I=ATG | J=AGT |
K=AAG | L=TGC | M=TCC | N=TCT | O=GGA | P=GTG | Q=AAC | R=TCA | S=ACG | T=TTC |
U=CTG | V=CCT | W=CCG | X=CTA | Y=AAA | Z=CTT | =ATA | ,=TCG | .=GAT | @=GCT |
0=ACT | 1=ACC | 2=TAG | 3=GCA | 4=GAG | 5=AGA | 6=TTA | 7=ACA | 8=AGG | 9=GCG |
表三中,预设的字符单元有40个,与各预设的字符单元对应的碱基单元为:从从DNA碱基群中任取出3个DNA碱基按照不同的顺序排序得到,所述DNA碱基群由4种DNA碱基且每种3个组成。
该第一种对应关系可以在可编程器件初始配置的时候,利用DNA的生物特性进行设计和配置,将其与常规数字、字母、符号相对应,形成具有DNA生物特性的编码表。在使用过程中,以上对应关系还可以重新定义。
第二种对应关系为,碱基单元与多进制数据单元的对应关系,碱基单元包括至少一个DNA碱基。多进制数据单元包括但不局限于二进制、四进制、十进制数据单元等等。多进制数据单元当然由多进制数据组成,优选的,不论是几进制数据单元,都由0和/或1两个数码构成。为了简化,优选的,多进制数据单元包括两个比特位。例如,用00、01、10和11四个二进制数据单元来对四种碱基进行编码,这种编码方式有4!=24种组合方式。在四个碱基中,A和T互补,C和G互补,考虑到要体现碱基的生物特性,采用0和1的互补关系,因此在4个二进制数据单元中,00和11互补,01和10互补。因此碱基单元与二进制数据单元的对应关系可以如表四至表十一中的任一种:
表四
二进制数据单元 | 碱基单元 |
00 | C |
01 | T |
10 | A |
11 | G |
表五
二进制数据单元 | 碱基单元 |
00 | C |
01 | A |
10 | T |
11 | G |
表六
二进制数据单元 | 碱基单元 |
00 | G |
01 | T |
10 | A |
11 | C |
表七
二进制数据单元 | 碱基单元 |
00 | G |
01 | A |
10 | T |
11 | C |
表八
二进制数据单元 | 碱基单元 |
00 | T |
01 | C |
10 | G |
11 | A |
表九
二进制数据单元 | 碱基单元 |
00 | T |
01 | G |
10 | C |
11 | A |
表十
二进制数据单元 | 碱基单元 |
00 | A |
01 | C |
10 | G |
11 | T |
表十一
二进制数据单元 | 碱基单元 |
00 | A |
01 | G |
10 | C |
11 | T |
表四至表十一中,为二进制数据单元,当然在其他实施例中也可以为其他进制数据单元,也可以由两个以上的比特位组成一个多进制数据单元,碱基单元中也可以包括两个或两个以上的碱基,而不局限于表中的只包括一个碱基的情况。
该第二种对应关系,将DNA生物特性与多进制数据相对应,将DNA生物特性用计算机数字的方式描述,形成具有DNA数学特性的数字编码。
上述第一种对应关系和第二种对应关系,可由用户自定义或者修改,可输入可编程器件内部一次性存储器中(如OTP)进行保存。
本实施例提供的上述新型的安全算法,基于上述第一种对应关系和第二种对应关系,具体包括但不局限于以下两种加密方法:
第一种加密方法为,根据预设的字符单元与碱基单元的对应关系,将所述待加密数据编码成DNA单链密文;根据碱基单元与多进制数据单元的对应关系,将所述DNA单链密文编码成多进制序列密文。
该种加密方案是,先将待加密数据中的各字符单元编码成对应的碱基单元并串成DNA单链密文,DNA单链密文由A、T、C和/或G组成;之后再将DNA单链密文中的各碱基单元编码成对应的多进制数据单元并串成多进制序列密文。
第二种加密方法为,根据预设的字符单元与碱基单元的对应关系,以及碱基单元与多进制数据单元的对应关系,逐个将所述待加密数据中的字符单元编码成多进制数据单元,并由各多进制数据单元组成所述多进制序列密文。
该种加密方案是,以待加密数据中的字符单元为单位,逐个的,轮到某一个字符单元时,根据以上两种对应关系一次性将该字符单元编码成多进制数据单元,再对下一个字符单元编码一次性编码成对应的多进制数据单元,并串成多进制序列密文。没有中间产物:DNA单链密文、DNA碱基。这种方式更加快速。
为了进一步提高安全性,优选的,在第一种加密方法中,在将待加密数据编码成DNA单链密文后,还包括根据碱基配对原则,将该DNA单链密文转换成与其互补的另一DNA单链密文,将该DNA单链密文替换成该另一DNA单链密文进入后续步骤,即,之后将该另一DNA单链密文中的各碱基单元编码成对应的多进制数据单元并串成多进制序列密文。
为了进一步提高安全性,优选的,在第二种加密方法中,逐个将所述待加密数据中的字符单元编码成多进制数据单元具体有以下两种方式:逐个将所述待加密数据中的字符单元编码成与字符单元对应的碱基单元所对应的多进制数据单元,或者逐个将所述待加密数据中的字符单元编码成与字符单元对应的碱基单元互补的另一碱基单元对应的多进制数据单元。前一种方式中,最后编码成的多进制数据单元是,待加密数据中的字符单元对应的碱基单元所对应的多进制数据单元;后一种方式中,最后编码成的多进制数据单元是,待加密数据中的字符单元对应的碱基单元互补的另一碱基单元所对应的多进制数据单元。
得到多进制序列密文之后,将该多进制序列密文作为可编程器件的标识信息,或者将采用预设辅助算法对该多进制序列密文进行加密后得到的密文作为该可编程器件的标识信息,后者更进一步提高了加密的安全性。
本实施例提供的上述新型的安全算法,通过DNA的生物特性的参与,增加密文破解的难度,减少了加密轮换此数,从而加快了加密时间;不需要使用密钥加密,从而降低了风险(如密钥被盗);另外,还易于扩展,可自由定义以上两种对应关系,从而加深加密的程度。
下面以将待加密数据123AFKPU@CHMRW.COM加密成二进制序列密文为例,采用以上实施例中的第一种加密方法,其加密过程包括:
先根据表三,将123AFKPU@CHMRW.COM编码成一条DNA单链,即DNA单链密文,这是第一次加密结果,如下:
ACCTAGGCACGAGGTAAGGTGCTGGCTGTTCGCTCCTCACCGGATGTTGGATCC;
再根据碱基配对原则,将上述DNA单链密文转换成与其互补的另一条DNA单链,即另一DNA单链密文,这是第二次加密结果:
TGGATCCGTGCTCCATTCCACGACCTACAAGCGAGGAGTGGCCTACAACCTAGG
再假设选择表四,那么结合上述第二次加密结果,我们就可以得出第三次加密结果,即二进制序列密文:
01111110 01000011 01110001 00001001 01000010 00111000 0001100010101100 11101111 10110111 11000001 10001111 00000110 11110000
最后,以8位二进制数据为一组输出或保存,不足的在末尾补00,从而形成第三次密文,作为最终的密文。该最终的密文作为可编程器件的标识信息,存储在可编程器件内嵌或外接的非易失性存储单元中。
本实施例,在可编程器件初始配置的时候,可以利用DNA的生物特性设计表三和表四,保存在可编程器件内部一次性存储器中,表三将其与常规数字、字母、符号相对应,形成具有DNA生物特性的编码表;表四将DNA生物特性与二进制数据相对应,形成具有DNA数学特性的数字编码;当确定待加密数据后,利用表三先进行第一次编码形成一条DNA单链,完成第一次加密,再利用DNA碱基对互补原则,将第一次加密后形成的单链通过互补的方式编码成另一条单链,完成第二次加密,再利用表四,将第二次编码后所形成的该另一DNA单链编码成二进制的形式,完成第三次加密;最后将第三次加密后所形成的二进制位流,存放在可编程器件的内部存储器中,作为最终的密文,或者输出。当然,在其他实施例中,也可以省去第二次加密,基于第一次加密结果直接根据表四进行加密得到最终的二进制序列密文。
下面介绍本发明提供的编程数据流的配置方法:
图2为本发明一实施例提供的编程数据流的配置方法的流程图,如图2所示,编程数据流的配置方法包括:
S201、从可编程器件内嵌或外接的易失性存储单元中读取所述可编程器件的标识信息,以及原编程数据流。
易失性存储单元中存储的可编程器件的标识信息,参考上述本发明提供的可编程器件的标识信息的配置方法进行配置。
原编程数据流通过用户设计得到。
S202、根据所述标识信息对所述原编程数据流进行处理,得到新的编程数据流,所述新的编程数据流携带所述标识信息,所述新的编程数据流用于对所述可编程器件进行编程。
根据所述标识信息对所述原编程数据流进行处理,得到新的编程数据流包括但不局限于:通过可编程器件的配套开发软件将步骤S201中获取到的可编程器件的标识信息通过预设规则嵌入到原编程数据流中,得到新的编程数据流。新的编程数据流与可编程器件之间通过相同的标识信息实现了关联,使得用户设计只能在该关联上的可编程器件中被正常编译,保证用户设计不能在其他器件上正确使用,进而保证编程数据流的安全,极大程度上避免了设计被反向工程、过度构建和克隆,形成价格低廉、保密性好而又不占用大量资源的安全解决方案。
下面介绍本发明提供的可编程器件的配置方法:
图3为本发明一实施例提供的可编程器件的配置方法的流程图,如图3所示,包括以下流程:
S301、导入编程数据流,读取所述编程数据流携带的标识信息,并从可编程器件内嵌或外接的存储单元中读取可编程器件的标识信息。
该存储单元为非易失性存储单元或易失性存储单元。
S302、将所述编程数据流携带的标识信息与所述可编程器件的标识信息进行比较;若两者相匹配,则进入步骤S303,否则进入步骤S304。
S303、根据所述编程数据流配置所述可编程器件。
两者相匹配包括两者完全相同,或者接近。
两者相匹配则说明该可编程器件为授权的器件,可根据该编程数据流对该可编程器件进行正常配置,实现正确的设计功能。
S304、无法正常编译所述编程数据流,只能执行设计中编程数据流中定义的一些未授权操作,或者直接结束流程(图中未示出)。
未授权的操作包括无功能、有限功能、定时炸弹、自毁以及其他一些用户自己定义的未授权操作。
在一些实施例中,若可编程器件的标识信息存储在易失性存储单元中,在易失性存储单元断电恢复后,需要通过以下方式给可编程器件配置标识信息:
读取所述可编程器件出厂配置的识别码作为待加密数据,或者自定义待加密数据;采用预设安全算法对所述待加密数据进行加密后得到所述可编程器件的标识信息,存储在所述可编程器件内嵌或外接的易失性存储单元中。
具体参考上述本发明提供的可编程器件的标识信息的配置方法。
图4为本发明一实施例提供的可编程器件的配置方法的流程图,如图4所示,包括以下流程:
S401、在每次的配置中,利用可编程器件的配套开发软件,通过外部接口获取可编程器件出厂配置的识别码作为待加密数据。由于安全算法是未知的,因此它是设计级安全的关键所在;安全算法由用户写入可编程器件的安全模块中,在可编程器件架构内实现加密,因此它只是可编程器件内数百万个配置位中的少数几位,不会占用太多的系统资源;
S402、将待加密数据发送至安全模块,并通过安全算法生成可编程器件的标识信息。可编程器件的标识信息是关联用户设计和可编程器件的关键所在;
S403、将可编程器件的标识信息存储在可编程器件内嵌的易失性存储单元中,如SRAM(静态随机存取存储器);
S404、设计并生成原编程数据流;
S405、通过可编程器件的配套开发软件从步骤S403的可编程器件的SRAM中读取出可编程器件的标识信息,并将其嵌入原编程数据流中,而后得到新的编程数据流;
S406、将步骤S405生成的新的编程数据流导入步骤S403的可编程器件中;
S407、读取该新的编程数据流所携带的标识信息,和该可编程器件的SRAM中存储的可编程器件的标识信息,进行比较;
S408、比较结果为相同,说明可编程器件为授权的器件,根据导入的该新的编程数据流对该可编程器件正常配置,实现正确的设计功能。
在可编程器件每次断电恢复后,重新回到步骤S401,重新通过配套配置软件来读取可编程器件出厂配置的识别码以生产可编程器件的标识信息。
在另一实施例中,如图5所示,与图4所示流程不同的是:步骤S404至S408替换成S404′至S407′:
S404′、盗用编程数据流;
S405′、将步骤S404′盗用的编程数据流导入步骤S403的可编程器件中;
S406′、比较其所携带的标识信息,和被导入的可编程器件的SRAM中存储的可编程器件的标识信息;由于编程数据流中不带标识信息,或者携带的是其他可编程器件的标识信息,每个可编程器件拥有的标识信息不同,因此,必然与被导入的可编程器件SRAM中存储的标识信息不相同,因此进入步骤S407′;
S407′、比较结果为不相同,说明被导入的可编程器件未授权,无法正常编译编程数据流,只能执行设计中编程数据流中定义的一些未授权操作。
一般而言,未授权都是因为盗用了其他可编程器件的编程数据流,则在比较过程中,由于盗用的编程数据流中的标识信息和被导入的可编程器件的SRAM中存储的不相同,该可编程器件无法被授权,从而无法正确配置,只能执行未授权的操作。
本发明还提供一种可编程器件的配置装置,用于执行上述可编程器件的配置方法,该可编程器件的配置装置主要包括:导入模块、第一读取模块、第二读取模块、比较模块和器件配置模块,其中,
导入模块用于导入编程数据流;
第一读取模块用于读取所述编程数据流携带的标识信息;
第二读取模块用于从可编程器件内嵌或外接的存储单元中读取可编程器件的标识信息;该存储单元包括易失性存储单元或非易失性存储单元;
比较模块用于将所述编程数据流携带的标识信息与所述可编程器件的标识信息进行比较;
器件配置模块,用于所述比较模块的比较结果为所述编程数据流携带的标识信息与所述可编程器件的标识信息相匹配的条件下,根据所述编程数据流配置所述可编程器件。不匹配的情况下,说明被导入的可编程器件未授权,无法正常编译编程数据流,只能执行设计中编程数据流中定义的一些未授权操作。
在一些实施例中,该可编程器件的配置装置还可以包括标识配置模块,若可编程器件的标识信息存在在易失性存储单元,在易失性存储单元断电恢复后对该可编程器件进行标识信息配置,所述标识配置模块相当于下述的标识信息的配置装置。
本发明提供的标识信息的配置装置用于执行上述可编程器件的标识信息的配置方法,标识信息的配置装置主要包括:第三读取模块和/或自定义模块,以及加密处理模块和存储模块;
第三读取模块用于读取可编程器件出厂配置的识别码作为待加密数据;
自定义模块用于自定义待加密数据;
加密处理模块用于采用预设安全算法对所述待加密数据进行加密后得到所述可编程器件的标识信息;
存储模块用于将所述算法模块得到的所述可编程器件的标识信息存储在所述可编程器件内嵌或外接的存储单元中。
所述存储模块具体用于:
若所述可编程器件内嵌有非易失性存储单元,则存储在所述非易失性存储单元;若所述可编程器件不具有内嵌的非易失性存储单元,则存储在所述可编程器件内嵌或外接的易失性存储单元;
或者,直接存储在所述可编程器件内嵌或外接的易失性存储单元。
在一些实施例中,所述加密处理模块具体用于根据预设的字符单元与碱基单元的对应关系,以及碱基单元与多进制数据单元的对应关系,将包括预设的字符单元的待加密数据编码成多进制序列密文,所述多进制序列密文包括至少一个多进制数据单元,所述字符单元包括至少一个字符,所述碱基单元包括至少一个DNA碱基;将所述多进制序列密文作为所述可编程器件的标识信息,或者将采用预设辅助算法对所述多进制序列密文进行加密后得到的密文作为所述可编程器件的标识信息。
在一些实施例中,所述加密处理模块包括第一加密子模块和/或第二加密子模块:
第一加密子模块用于根据预设的字符单元与碱基单元的对应关系,将所述待加密数据编码成DNA单链密文;根据碱基单元与多进制数据单元的对应关系,将所述DNA单链密文编码成多进制序列密文;
第二加密子模块用于根据预设的字符单元与碱基单元的对应关系,以及碱基单元与多进制数据单元的对应关系,逐个将所述待加密数据中的字符单元编码成多进制数据单元;并由各多进制数据单元组成所述多进制序列密文。
在一些实施例中,第一加密子模块还用于在根据碱基单元与多进制数据单元的对应关系,将所述DNA单链密文编码成多进制序列密文之前,根据碱基配对原则,将所述DNA单链密文转换成与其互补的另一DNA单链密文,将所述DNA单链密文替换成所述另一DNA单链密文进入后续步骤。
在一些实施例中,第二加密子模块具体用于根据预设的字符单元与碱基单元的对应关系,以及碱基单元与多进制数据单元的对应关系,逐个将所述待加密数据中的字符单元编码成与字符单元对应的碱基单元所对应的多进制数据单元,或者逐个将所述待加密数据中的字符单元编码成与字符单元对应的碱基单元互补的另一碱基单元对应的多进制数据单元。
在一些实施例中,该标识信息的配置装置还包括保存模块,用于保存所述预设的字符单元与碱基单元的对应关系,所述预设的字符单元与碱基单元的对应关系中,若预设的字符单元有X个,则与各预设的字符单元对应的碱基单元为:从DNA碱基群中任取出Z个DNA碱基按照不同的顺序排序得到,所述DNA碱基群由Y种DNA碱基且每种Z个组成,Z≥1,4≥Y≥1,1≤X≤YZ;
还用于保存所述碱基单元与多进制数据单元的对应关系,所述碱基单元与多进制数据单元的对应关系中,与各碱基单元中的各碱基对应的多进制数据单元包括两个比特位。
本发明还提供一种编程数据流的配置装置,用于执行上述的编程数据流的配置方法,编程数据流的配置装置包括:第一获取模块、第二获取模块和数据流处理模块,其中,
第一获取模块用于从可编程器件内嵌或外接的易失性存储单元中读取所述可编程器件的标识信息;
第二获取模块用于获取原编程数据流;
数据流处理模块用于根据所述标识信息对所述原编程数据流进行处理,得到新的编程数据流,所述新的编程数据流携带所述标识信息,所述新的编程数据流用于对所述可编程器件进行编程。
通过本发明能够将编程数据流与可编程器件关联起来,从而实现用户设计只能在授权的可编程器件中被正常编译,保证用户设计不能在其他器件上正确使用,进而保证编程数据流的安全,极大程度上避免了设计被反向工程、过度构建和克隆,形成价格低廉、保密性好而又不占用大量资源的安全解决方案。本发明可以在可编程器件本体上实现,无需单片机等芯片辅助实现保密功能,方案简洁、易操作,在可编程器件本体上,必要时也只是对可编程器件芯片电路进行微调设计即可实现编程数据流安全保护,电路设计实现难度低、风险低、成本低。对编程数据流的保护能够用较低的成本实现,而且可以通过不同的加密算法实现不同的安全等级,有着灵活性强,普遍性高的优点。
以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (25)
1.一种可编程器件的配置方法,其特征在于,包括:
导入编程数据流,读取所述编程数据流携带的标识信息,并从可编程器件内嵌或外接的存储单元中读取可编程器件的标识信息,所述可编程器件的标识信息用于表征所述可编程器件为授权的器件,各可编程器件拥有的标识信息不同;
将所述编程数据流携带的标识信息与所述可编程器件的标识信息进行比较;
若两者相匹配,则根据所述编程数据流配置所述可编程器件。
2.如权利要求1所述的可编程器件的配置方法,其特征在于,所述存储单元为易失性存储单元。
3.如权利要求2所述的可编程器件的配置方法,其特征在于,所述易失性存储单元断电恢复后,还包括通过以下方式给所述可编程器件配置标识信息:
读取所述可编程器件出厂配置的识别码作为待加密数据,或者自定义待加密数据;采用预设安全算法对所述待加密数据进行加密后得到所述可编程器件的标识信息,存储在所述可编程器件内嵌或外接的易失性存储单元中。
4.如权利要求3所述的可编程器件的配置方法,其特征在于,采用预设安全算法对所述待加密数据进行加密后得到所述可编程器件的标识信息包括:
根据预设的字符单元与碱基单元的对应关系,以及碱基单元与多进制数据单元的对应关系,将包括预设的字符单元的待加密数据编码成多进制序列密文,所述多进制序列密文包括至少一个多进制数据单元,所述字符单元包括至少一个字符,所述碱基单元包括至少一个DNA碱基;将所述多进制序列密文作为所述可编程器件的标识信息,或者将采用预设辅助算法对所述多进制序列密文进行加密后得到的密文作为所述可编程器件的标识信息。
5.一种标识信息的配置方法,其特征在于,包括:
读取可编程器件出厂配置的识别码作为待加密数据,或者自定义待加密数据;
采用预设安全算法对所述待加密数据进行加密后得到所述可编程器件的标识信息,存储在所述可编程器件内嵌或外接的存储单元中,所述可编程器件的标识信息用于表征所述可编程器件为授权的器件,各可编程器件拥有的标识信息不同。
6.如权利要求5所述的标识信息的配置方法,其特征在于,存储在所述可编程器件内嵌或外接的存储单元中包括:
若所述可编程器件内嵌有非易失性存储单元,则存储在所述非易失性存储单元;若所述可编程器件不具有内嵌的非易失性存储单元,则存储在所述可编程器件内嵌或外接的易失性存储单元;
或者,直接存储在所述可编程器件内嵌或外接的易失性存储单元。
7.如权利要求6所述的标识信息的配置方法,其特征在于,采用预设安全算法对所述待加密数据进行加密后得到所述可编程器件的标识信息包括:
根据预设的字符单元与碱基单元的对应关系,以及碱基单元与多进制数据单元的对应关系,将包括预设的字符单元的待加密数据编码成多进制序列密文,所述多进制序列密文包括至少一个多进制数据单元,所述字符单元包括至少一个字符,所述碱基单元包括至少一个DNA碱基;将所述多进制序列密文作为所述可编程器件的标识信息,或者将采用预设辅助算法对所述多进制序列密文进行加密后得到的密文作为所述可编程器件的标识信息。
8.如权利要求7所述的标识信息的配置方法,其特征在于,根据预设的字符单元与碱基单元的对应关系,以及碱基单元与多进制数据单元的对应关系,将包括预设的字符单元的待加密数据编码成多进制序列密文,具体为:
根据预设的字符单元与碱基单元的对应关系,将所述待加密数据编码成DNA单链密文;根据碱基单元与多进制数据单元的对应关系,将所述DNA单链密文编码成多进制序列密文;
或者,根据预设的字符单元与碱基单元的对应关系,以及碱基单元与多进制数据单元的对应关系,逐个将所述待加密数据中的字符单元编码成多进制数据单元;并由各多进制数据单元组成所述多进制序列密文。
9.如权利要求8所述的标识信息的配置方法,其特征在于,根据碱基单元与多进制数据单元的对应关系,将所述DNA单链密文编码成多进制序列密文之前,还包括:
根据碱基配对原则,将所述DNA单链密文转换成与其互补的另一DNA单链密文,将所述DNA单链密文替换成所述另一DNA单链密文进入后续步骤。
10.如权利要求8所述的标识信息的配置方法,其特征在于,根据预设的字符单元与碱基单元的对应关系,以及碱基单元与多进制数据单元的对应关系,逐个将所述待加密数据中的字符单元编码成多进制数据单元,包括:
根据预设的字符单元与碱基单元的对应关系,以及碱基单元与多进制数据单元的对应关系,逐个将所述待加密数据中的字符单元编码成与字符单元对应的碱基单元所对应的多进制数据单元,或者逐个将所述待加密数据中的字符单元编码成与字符单元对应的碱基单元互补的另一碱基单元对应的多进制数据单元。
11.如权利要求7至10任一项所述的标识信息的配置方法,其特征在于,所述预设的字符单元与碱基单元的对应关系中,若预设的字符单元有X个,与各预设的字符单元对应的碱基单元为:从DNA碱基群中任取出Z个DNA碱基按照不同的顺序排序得到,所述DNA碱基群由Y种DNA碱基且每种Z个组成,Z≥1,4≥Y≥1,1≤X≤YZ。
12.如权利要求11所述的标识信息的配置方法,所述预设的字符单元与碱基单元的对应关系中,若预设的字符单元分别为26个字母中的各个字母、0至9中的各个数字、空格、逗号、句号、@;则与各预设的字符单元对应的碱基单元为:从DNA碱基群中任取出3个DNA碱基按照不同的顺序排序得到,所述DNA碱基群由4种DNA碱基且每种3个组成。
13.一种编程数据流的配置方法,其特征在于,包括:
从可编程器件内嵌或外接的易失性存储单元中读取所述可编程器件的标识信息,以及原编程数据流,所述可编程器件的标识信息用于表征所述可编程器件为授权的器件,各可编程器件拥有的标识信息不同;
根据所述标识信息对所述原编程数据流进行处理,得到新的编程数据流,所述新的编程数据流携带所述标识信息,所述新的编程数据流用于对所述可编程器件进行编程。
14.一种可编程器件的配置装置,其特征在于,包括:
导入模块,用于导入编程数据流;
第一读取模块,用于读取所述编程数据流携带的标识信息;
第二读取模块,用于从可编程器件内嵌或外接的存储单元中读取可编程器件的标识信息,所述可编程器件的标识信息用于表征所述可编程器件为授权的器件,各可编程器件拥有的标识信息不同;
比较模块,用于将所述编程数据流携带的标识信息与所述可编程器件的标识信息进行比较;
以及,器件配置模块,用于所述比较模块的比较结果为所述编程数据流携带的标识信息与所述可编程器件的标识信息相匹配的条件下,根据所述编程数据流配置所述可编程器件。
15.如权利要求14所述的可编程器件的配置装置,其特征在于,第二读取模块具体用于从可编程器件内嵌或外接的易失性存储单元中读取可编程器件的标识信息。
16.如权利要求15所述的可编程器件的配置装置,其特征在于,还包括用于在易失性存储单元断电恢复后对所述可编程器件进行标识信息配置的标识配置模块,所述标识配置模块包括:
第三读取模块,用于读取所述可编程器件出厂配置的识别码作为待加密数据;或者,自定义模块,用于自定义待加密数据;
以及,加密处理模块,用于采用预设安全算法对所述待加密数据进行加密后得到所述可编程器件的标识信息;
以及,存储模块,用于将所述算法模块得到的所述可编程器件的标识信息存储在所述可编程器件内嵌或外接的易失性存储单元中。
17.如权利要求16所述的可编程器件的配置装置,其特征在于,所述加密处理模块具体用于根据预设的字符单元与碱基单元的对应关系,以及碱基单元与多进制数据单元的对应关系,将包括预设的字符单元的待加密数据编码成多进制序列密文,所述多进制序列密文包括至少一个多进制数据单元,所述字符单元包括至少一个字符,所述碱基单元包括至少一个DNA碱基;将所述多进制序列密文作为所述可编程器件的标识信息,或者将采用预设辅助算法对所述多进制序列密文进行加密后得到的密文作为所述可编程器件的标识信息。
18.一种标识信息的配置装置,其特征在于,包括:
第三读取模块,用于读取可编程器件出厂配置的识别码作为待加密数据;或者,自定义模块,用于自定义待加密数据;
以及,加密处理模块,用于采用预设安全算法对所述待加密数据进行加密后得到所述可编程器件的标识信息,所述可编程器件的标识信息用于表征所述可编程器件为授权的器件,各可编程器件拥有的标识信息不同;
以及,存储模块,用于将所述算法模块得到的所述可编程器件的标识信息存储在所述可编程器件内嵌或外接的存储单元中。
19.如权利要求18所述的标识信息的配置装置,其特征在于,所述存储模块具体用于:
若所述可编程器件内嵌有非易失性存储单元,则存储在所述非易失性存储单元;若所述可编程器件不具有内嵌的非易失性存储单元,则存储在所述可编程器件内嵌或外接的易失性存储单元;
或者,直接存储在所述可编程器件内嵌或外接的易失性存储单元。
20.如权利要求19所述的标识信息的配置装置,其特征在于,所述加密处理模块具体用于根据预设的字符单元与碱基单元的对应关系,以及碱基单元与多进制数据单元的对应关系,将包括预设的字符单元的待加密数据编码成多进制序列密文,所述多进制序列密文包括至少一个多进制数据单元,所述字符单元包括至少一个字符,所述碱基单元包括至少一个DNA碱基;将所述多进制序列密文作为所述可编程器件的标识信息,或者将采用预设辅助算法对所述多进制序列密文进行加密后得到的密文作为所述可编程器件的标识信息。
21.如权利要求20所述的标识信息的配置装置,其特征在于,所述加密处理模块包括第一加密子模块和/或第二加密子模块:
第一加密子模块用于根据预设的字符单元与碱基单元的对应关系,将所述待加密数据编码成DNA单链密文;根据碱基单元与多进制数据单元的对应关系,将所述DNA单链密文编码成多进制序列密文;
第二加密子模块用于根据预设的字符单元与碱基单元的对应关系,以及碱基单元与多进制数据单元的对应关系,逐个将所述待加密数据中的字符单元编码成多进制数据单元;并由各多进制数据单元组成所述多进制序列密文。
22.如权利要求21所述的标识信息的配置装置,其特征在于,第一加密子模块还用于在根据碱基单元与多进制数据单元的对应关系,将所述DNA单链密文编码成多进制序列密文之前,根据碱基配对原则,将所述DNA单链密文转换成与其互补的另一DNA单链密文,将所述DNA单链密文替换成所述另一DNA单链密文进入后续步骤。
23.如权利要求21所述的标识信息的配置装置,其特征在于,第二加密子模块具体用于根据预设的字符单元与碱基单元的对应关系,以及碱基单元与多进制数据单元的对应关系,逐个将所述待加密数据中的字符单元编码成与字符单元对应的碱基单元所对应的多进制数据单元,或者逐个将所述待加密数据中的字符单元编码成与字符单元对应的碱基单元互补的另一碱基单元对应的多进制数据单元。
24.如权利要求18至23任一项所述的标识信息的配置装置,其特征在于,还包括保存模块,用于保存所述预设的字符单元与碱基单元的对应关系,所述预设的字符单元与碱基单元的对应关系中,若预设的字符单元有X个,则与各预设的字符单元对应的碱基单元为:从DNA碱基群中任取出Z个DNA碱基按照不同的顺序排序得到,所述DNA碱基群由Y种DNA碱基且每种Z个组成,Z≥1,4≥Y≥1,1≤X≤YZ;
还用于保存所述碱基单元与多进制数据单元的对应关系,所述碱基单元与多进制数据单元的对应关系中,与各碱基单元中的各碱基对应的多进制数据单元包括两个比特位。
25.一种编程数据流的配置装置,其特征在于,包括:
第一获取模块,用于从可编程器件内嵌或外接的易失性存储单元中读取所述可编程器件的标识信息,所述可编程器件的标识信息用于表征所述可编程器件为授权的器件,各可编程器件拥有的标识信息不同;
第二获取模块,用于获取原编程数据流;
数据流处理模块,用于根据所述标识信息对所述原编程数据流进行处理,得到新的编程数据流,所述新的编程数据流携带所述标识信息,所述新的编程数据流用于对所述可编程器件进行编程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510875108.XA CN105550541B (zh) | 2015-12-02 | 2015-12-02 | 可编程器件、标识信息、编程数据流的配置方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510875108.XA CN105550541B (zh) | 2015-12-02 | 2015-12-02 | 可编程器件、标识信息、编程数据流的配置方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105550541A CN105550541A (zh) | 2016-05-04 |
CN105550541B true CN105550541B (zh) | 2019-09-06 |
Family
ID=55829728
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510875108.XA Active CN105550541B (zh) | 2015-12-02 | 2015-12-02 | 可编程器件、标识信息、编程数据流的配置方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105550541B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107103213B (zh) * | 2017-03-23 | 2018-08-31 | 中国航天系统科学与工程研究院 | 一种基于遗传算法的软件代码混淆操作选择方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1656471A (zh) * | 2002-05-21 | 2005-08-17 | 华盛顿大学 | 使用可重编程硬件高速处理流数据以发现可重编程的模式并对其作出响应的方法、系统和装置 |
CN103473733A (zh) * | 2013-09-12 | 2013-12-25 | 东北林业大学 | 基于dna编码和混沌映射的图像加密算法 |
CN104615953A (zh) * | 2015-02-10 | 2015-05-13 | 复旦大学 | 一种配置数据流安全性高的可编程逻辑器 |
CN104734848A (zh) * | 2015-03-02 | 2015-06-24 | 郑州轻工业学院 | 基于重组dna技术对信息进行加密与隐藏的方法及应用 |
CN104881286A (zh) * | 2015-05-28 | 2015-09-02 | 烽火通信科技股份有限公司 | 可编程器件配置系统及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004077206A2 (en) * | 2003-02-27 | 2004-09-10 | Koninklijke Philips Electronics N.V. | Data processing system having a plurality of processing elements, a method of controlling a data processing system having a plurality of processing elements |
-
2015
- 2015-12-02 CN CN201510875108.XA patent/CN105550541B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1656471A (zh) * | 2002-05-21 | 2005-08-17 | 华盛顿大学 | 使用可重编程硬件高速处理流数据以发现可重编程的模式并对其作出响应的方法、系统和装置 |
CN103473733A (zh) * | 2013-09-12 | 2013-12-25 | 东北林业大学 | 基于dna编码和混沌映射的图像加密算法 |
CN104615953A (zh) * | 2015-02-10 | 2015-05-13 | 复旦大学 | 一种配置数据流安全性高的可编程逻辑器 |
CN104734848A (zh) * | 2015-03-02 | 2015-06-24 | 郑州轻工业学院 | 基于重组dna技术对信息进行加密与隐藏的方法及应用 |
CN104881286A (zh) * | 2015-05-28 | 2015-09-02 | 烽火通信科技股份有限公司 | 可编程器件配置系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105550541A (zh) | 2016-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8094816B2 (en) | System and method for stream/block cipher with internal random states | |
CN101371480B (zh) | 加密保护方法 | |
US8175265B2 (en) | Systems and methods for implementing block cipher algorithms on attacker-controlled systems | |
US9369486B2 (en) | Device and method for encoding input data based on hamming distance and/or weight | |
US4319079A (en) | Crypto microprocessor using block cipher | |
CN106161006B (zh) | 一种数字加密算法 | |
CN101034978B (zh) | 用于执行抵抗密码攻击的密码过程的方法和计算设备、以及数据处理系统 | |
CN105099652B (zh) | 数据加密、解密方法和装置 | |
CN105940439A (zh) | 使用排列应对对密码算法的旁通道攻击的对策 | |
CN102138300A (zh) | 消息认证码预计算在安全存储器中的应用 | |
CN105959098A (zh) | 基于多分割Feistel网络的保留格式加密算法 | |
CN105550570A (zh) | 一种应用于可编程器件的加密、解密方法及装置 | |
CN103455446A (zh) | 用于实施加密方法的设备及对此的运行方法 | |
CN109765856A (zh) | 安全逻辑系统及操作安全逻辑系统的方法 | |
CN101116081A (zh) | 用于微处理器数据安全的方法和系统 | |
CN105515849B (zh) | 可编程器件、标识信息、编程数据流的配置方法及装置 | |
CN110324141A (zh) | 抵抗旁信道攻击的物理不可克隆函数和其对应的方法 | |
CN109426731A (zh) | 保护数据的方法 | |
CN107277048A (zh) | 一种用于通信认证的加密解密方法 | |
CN1945591A (zh) | 一种电子标签加密防伪技术 | |
CN105550541B (zh) | 可编程器件、标识信息、编程数据流的配置方法及装置 | |
US20080317251A1 (en) | Methods and systems for storing and retrieving encrypted data | |
CN103916235A (zh) | 随机插入伪轮运算对的抗功耗攻击方法 | |
CN112231739A (zh) | 一种基于地址重映射的烧录文件加解密方法及其系统 | |
CN104393988A (zh) | 一种可逆的数据加密方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |