- 主题:spartan 6 FPGA加密问题请教
网上找的资料说有两种方式 AES和DNA, DNA利用FPGA 唯一的的id号, 这种加密方法靠谱吗?
--
FROM 202.122.36.*
我的理解是 FPGA板子别人拿到后,FPGA的 DNA号都可以通过JTAG读出, 如果我只是在代码里简单判断是不是这个DNA序列号的话,这个序列号是不是也会出现在MCS文件里,如果别人修改MCS文件里的这个序列号去匹配新的FPGA, 那所谓的加密就没意义了吧?
【 在 zzlthuscu 的大作中提到: 】
: 网上找的资料说有两种方式 AES和DNA, DNA利用FPGA 唯一的的id号, 这种加密方法靠谱吗?
--
FROM 202.122.36.*
DNA要通过加密算法变换的。算法保密就可以了。
【 在 zzlthuscu 的大作中提到: 】
: 网上找的资料说有两种方式 AES和DNA, DNA利用FPGA 唯一的的id号, 这种加密方法靠谱吗?
--
FROM 60.27.227.*
随便变换处理一下DNA
【 在 zzlthuscu 的大作中提到: 】
: 我的理解是 FPGA板子别人拿到后,FPGA的 DNA号都可以通过JTAG读出, 如果我只是在代码里简单判断是不是这个DNA序列号的话,这个序列号是不是也会出现在MCS文件里,如果别人修改MCS文件里的这个序列号去匹配新的FPGA, 那所谓的加密就没意义了吧?
--
FROM 61.48.133.*
多谢回复。 我现在可以把DNA序列号在代码里读出了,然后在opencores找了一个最简单的加密算法,
这个算法的输入输出口如下:
entity tea64 is
port(
key : in std_logic_vector(127 downto 0);
text : in std_logic_vector(63 downto 0);
cipher : out std_logic_vector(63 downto 0)
);
end tea64;
按照我的理解:128bit的key 是一个密钥,我在代码里直接固定成一个常数, text是我FPGA的DNA序列号,对每一个fpga板子,我读出DNA,然后经过这个算法,算出一个cipher, 我也要在代码里把cipher固定成常数,最后比较cipher的实际输出和我预设的cipher值,如果相等则启动功能逻辑。简单的加密算法是这个逻辑不? 另外我在代码里固定了两个常数, 生成mcs文件后,这两个数据是不是可以从mcs文件里找到?
【 在 zzlthuscu 的大作中提到: 】
: 我的理解是 FPGA板子别人拿到后,FPGA的 DNA号都可以通过JTAG读出, 如果我只是在代码里简单判断是不是这个DNA序列号的话,这个序列号是不是也会出现在MCS文件里,如果别人修改MCS文件里的这个序列号去匹配新的FPGA, 那所谓的加密就没意义了吧?
:
--
FROM 202.122.36.*
我记得是需要用xilinx官方的烧写器的,3K人民币的那种。
其实就是在efuse里面烧一个秘钥,vivado也通过这个秘钥将MCS加密,
别人读出来也是乱的。xdc里面设置如下:
set_property BITSTREAM.ENCRYPTION.ENCRYPT YES [current_design]
set_property BITSTREAM.ENCRYPTION.ENCRYPTKEYSELECT EFUSE [current_design]
set_property BITSTREAM.ENCRYPTION.KEY0 256'h9F2EC12787E0704C4A2431ABEC269D90E89980175C486C256EF36A1F47319AAB [current_design]
set_property BITSTREAM.ENCRYPTION.HKEY 256'hE82F72833A2BD7903A802D16D737197C8BD2FB0027C163430C554D230BCE649A [current_design]
set_property BITSTREAM.ENCRYPTION.STARTCBC 128'hB6242D538C339FEAB2153ABC72329E6F [current_design]
set_property BITSTREAM.READBACK.SECURITY LEVEL1 [current_design]
--
FROM 58.33.101.*
我现在用的还是 ISE14.6 ise可以这么烧写吗?
【 在 Icekingak 的大作中提到: 】
: 我记得是需要用xilinx官方的烧写器的,3K人民币的那种。
: 其实就是在efuse里面烧一个秘钥,vivado也通过这个秘钥将MCS加密,
: 别人读出来也是乱的。xdc里面设置如下:
: ...................
--
FROM 202.122.36.*
烧fuse,应该读不出来
【 在 zzlthuscu 的大作中提到: 】
: 我的理解是 FPGA板子别人拿到后,FPGA的 DNA号都可以通过JTAG读出, 如果我只是在代码里简单判断是不是这个DNA序列号的话,这个序列号是不是也会出现在MCS文件里,如果别人修改MCS文件里的这个序列号去匹配新的FPGA, 那所谓的加密就没意义了吧?
: --
: --
: 幸
: ..................
发自「今日水木 on iPhone 13 Pro」
--
FROM 112.20.68.*