紫光同创PGL22G开发平台试用连载(7)---程序密码之理论篇

日期:2020-09-01 来源:电子创新网作者:毛华望阅读:27

大家好:我是毛华望。目前在参加紫光同创PGL22G开发平台试用。连载第7篇。

生活密码:

生活中的密码就非常常见了。比如说:各种账号的密码。 QQ密码,微信密码。手机密码等等。都是防止别人占用我们的账号里面的资源。有了密码,别人就很难盗取我们的账号,来利用我们的账号资源。

为了为了谋取特别的利益,破解别人的密码,占用别人的账号资源也是常有的。QQ被盗取,邮箱被盗取,还有很多就更严重了。比如说:盗取别人的专利,研究成果等。破解密码的通用方法就是枚举,密码也就是那么长,只要有足够的时间,足够的算力,总还是可以的。如果是加密的研究文件呢??就需要根据相关内容反向推导,进行解码。

为了防止被解密。工程师会进行更多的放解密处理,比如说:只要错误3次就要等1个小时才能再次尝试。

FPGA程序进行加密的原因:

在工程师这个行业里,你应该挺说过,抄板。 抄袭别人的设计。早期在东莞,抄板的这个事情就更严重了。所有的原件都裸露在外,别人仔细的看,花些时间他就能抄出一块和你一模一样的板子。

虽然现在可编程芯片的发展问题已经比较少了。可是问题依然存在。

1,FPGA单块板本身。如果是复杂的8层板,或者管脚众多的FPGA的板子。可能没有办法对你的板子进行抄袭。但是如果mini类型的板子。如果是同行业的人,或者说是竞争对手,功能一样,理论一样,可能就是编程编写的源码不一样罢了。对你的板子的功能非常熟悉。只要对FPGA的管脚进行激励测试,很可能他就能知道你的fpga的pcb的管脚连线是什么样的了。

因为FPGA的程序是断电程序丢失的。所以,必须存放在外边的flash存储器里。可是谁都知道,flash是可以被读回来的。只要别人知道了你的FPGA管脚分配,只要拿到flash里面的程序。那么别人就可以直接使用你的FPGA产品了。

所以,在PCB作为你的产品的知识产权保护屏障,显的不够保密的情况下。在你感觉很容易被别人快速破解的时候,就需要进行第2道加密。

2,产品互联加密。

解释一下,比如说:我们用遥控器控制电视,空调,电冰箱。我们就是用的遥控器发出一个数据流,给电视的。只要我们能截获这段数据流,比如说:我们用另外的电视截获这段数据。然后我们在做一个设备能发送这段时间流的话,我们就可以用我们的设备控制电视了。

当然,电视厂家不靠遥控器赚钱。但是如果是激光发送器和接收器呢?如果有人截获了激光发射器和接收器的通信方式。那么别人就可以只买你的接收器,用别人的发送器了。

本来一套的话才能形成技术壁垒。本来发送器是收益更好。本来接收器是技术难点。这样一来,你可能失去利润,可能增加更多的竞争者。所以,互联通信加密也是必要的。让技术是同行业的人,也不发完全获取通信的密码。

3,试用期。

比较高端的产品,可能很贵,不想买,我就类似买了1个月的会员一样,我就租借用1个月。一方面,可能送出去的卡太多,不方便人工统计每张卡都多长时间了吧。借完了,不还。或者类似使用就付费,不适用不付费的话。你又该怎么处理。

所以,最好的方法也还是给1个月的密码,2个月的密码。对程序进行加密。

详细描述FPGA单板解密方法:

详细说,这种情况下的解密。只要拿到FPGA每个管脚的功能,这块FPGA板子就算解密了,就可以直接用别人flash里面的程序了。自己辛苦写的程序,别人就复制了。

比如说 :这块核心板,它的功能呢?假设是H.265压缩算法。我就是盗取人员。因为写一个H.265压缩算法多难啊。如果我直接盗取FLASH里面的程序,复制这块板子不就方便很多了吗?

1,从视觉上大概分区。

80帧的连接脚,FPGA的1区和2区。

Ddr3和flash 在 3区。 只要知道这些你就大概知道了FPGA的ddr3 ,flash的大概管脚分部了。

2,用万用表量FPGA管脚。

把FPGA焊下来,把ddr3焊下来,flash焊接下来。有过FPGA经验的人都知道。这2个原件的管脚都是直接连接FPGA上的。只要用万用表的短路功能,你就可以知道ddr3的每个管脚对应到FPGA的哪个管脚上。同样的flash的管脚也会知道。

那些电阻电容电源啥的,都是紫光提供的,所有的板子都一样。晶振有特定的管脚。也能很容易知道。

3,FPGA内部激励

经过第2招,基本上就可以把FPGA的所有管脚的对应位置抄袭出来了。第3招。给不同的管脚写不同的波形,在外部用示波器去看,也就知道FPGA的管脚对应到了什么位置。

这样我就知道了,这个核心板的版卡的FPGA管脚了。就相当于复制了这块板。如果客户有了这项技术,那么客户向你买了10块,自己复制了10块。flash里的程序,你总是要提供给客户的吧。这样客户在采购你的板子的时候,就又省了很多钱。损害了你的利益。

详细描述FPGA单板加密方法:

光靠FPGA的PCB板的保密。保密级别太低了。很容易被破解。我们需要添加加密元器件。比如:单片机,CPLD。进行通信加密。硬件连接上,就是单片机用8条线连接到FPGA上。单片机实时传输密码给FPGA。这样,如果没有单片机传送过来的密码也是不能正常运行的。

具体的加密方法。目前只是测试,我会选用相对简单的加密方法。2层加密。1,一次发送3个8bit的连续的特定序列密码。然后分32次发送。只要发现序列错误,为密码错误。 2, 要发送32次密码,每一次密码要在特定的时间范围。比如说,第一次发送密码后,5分钟后10分钟内要发第二个密码。 第2次发送密码后,50分钟后到1小时30分钟内。如果在规定时间内,没有收到特定序列,会被认为密码错误。

FPGA实验并测试:

密码的发送由串口代替。串口定时发送数据,如果FPGA没有收到串口发来的特定序列,定义为密码错误。如果密码正确LED灯会一直运行,如果密码错误LED等全部熄灭。

密码最后的设定方案和实现方法,我会在下一篇去完成。

打赏
联系客服 投诉反馈  顶部