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

毛华望 提交于 周五, 09/11/2020
紫光同创PGL22G开发平台试用连载(8)---程序密码之程序篇

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

密码设计方案

为了方便测试,采用2层加密。1,  用4个8bit作为一组密码。分3组发送。分别是:85677943,22874026,97842901.      2,  时间间隔, 30秒和45秒。

如果有任何一组密码没有按时到来,就要输入69963338来重新激活。当然你发送密码的时候要是4357878869963338875434.

突然感觉用串口模拟程序加密实在和实际情况差的比较远。因为如果是单片机就可以实时的发送8bit的数据,一直发送。而串口无法模拟,只能发一些数据就停下来。大概连续发送几分钟的数据吧。

Matlab做数据(excel)

Excel通用也比较容易。所以,演示用excel。

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

用随机rand()*99.就能随机生成99以内的数据了。

复制粘贴到txt文本。

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

没有任何问题。然后用串口发送。

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

发送的数据也没有任何问题。我用excel做了50万的数据量。发送的话5分钟。

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

因为串口是有时间的,所以,只要把85677943,22874026,97842901.   这3个密码插入到差不多的时间位置上就可以了。为了安全起见,你可以试一下有没有数据和密码相同。

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

把85677943放进了开头。第2个要放在2030秒的位置上。

时间大概是22:57:4 的位置上。

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

插入到这个位置上。

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

这个地方添加密码2 。22874026。

在之后的3045秒内,添加密码3 。97842901

准备工作已经做完。开始写FPGA程序。

FPGA程序

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

输入密码是要的。

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

统计连续进入的4个8bit的数据。

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

Signal  valid信号作为有效信号。如果说密码一直是对的,那么会一直亮。如果这个信号为0,led灯就会灭。

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

计数器1s。1s就有1个标志位。

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

Clc_time  时间清0用的。 只要密码到了时间就会清0.  如果密码没到就会一直计数下去。统计经过了多少秒。

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

状态0的时候。刚上电。15秒内免费点亮。Signal_valid是1,表示可以正常使用。

如果15秒内,输入密码85677943,就可以继续使用。 并且clc_time把时间清除一下,然后继续统计时间。

如果超过15秒,没有输入密码呢?

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

就必须输入:69963338就可以激活了。回到状态0.当然输入的时候要输入4357878869963338875434默认前面有一堆数,后面有一堆数。

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

状态1,就是30秒内输入密码:22874026。 进入状态2.  如果30秒内没有输入密码,进入状态3.

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

状态2,情况一样的。

最后拿着生成的数据,用串口发送试一下。可以了。

总结

为了模拟,我采用了比较简单的加密。不要去问太多为什么。比如说:为何不选择时间区间,为何跳出死区就用了一节数据等。不符合现实使用的疑问。因为这里只是模拟简单的加密过程。现实使用会复杂很多。

你好: 我是毛华望。  加密的程序就这样完成了。谢谢观看。

相关文章

Digi-Key