页面加载中,请稍候
来源:半导体产业网发布时间:2020-09-11980浏览
询问 AI
大家好:我是毛华望。目前在参加紫光同创PGL22G开发平台试用。连载第8篇。
密码设计方案:
为了方便测试,采用2层加密。1,用4个8bit作为一组密码。分3组发送。分别是:85677943,22874026,97842901.2,时间间隔, 30秒和45秒。
如果有任何一组密码没有按时到来,就要输入69963338来重新激活。当然你发送密码的时候要是4357878869963338875434.
突然感觉用串口模拟程序加密实在和实际情况差的比较远。因为如果是单片机就可以实时的发送8bit的数据,一直发送。而串口无法模拟,只能发一些数据就停下来。大概连续发送几分钟的数据吧。
Matlab做数据(excel):
Excel通用也比较容易。所以,演示用excel。

用随机rand()*99.就能随机生成99以内的数据了。
复制粘贴到txt文本。

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

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


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

把85677943放进了开头。第2个要放在20—30秒的位置上。
时间大概是22:57:4 的位置上。

插入到这个位置上。

这个地方添加密码2 。22874026。
在之后的30—45秒内,添加密码3 。97842901
准备工作已经做完。开始写FPGA程序。
FPGA程序

输入密码是要的。

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

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

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

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

状态0的时候。刚上电。15秒内免费点亮。Signal_valid是1,表示可以正常使用。
如果15秒内,输入密码85677943,就可以继续使用。 并且clc_time把时间清除一下,然后继续统计时间。
如果超过15秒,没有输入密码呢?

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

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

状态2,情况一样的。
最后拿着生成的数据,用串口发送试一下。可以了。
总结:
为了模拟,我采用了比较简单的加密。不要去问太多为什么。比如说:为何不选择时间区间,为何跳出死区就用了一节数据等。不符合现实使用的疑问。因为这里只是模拟简单的加密过程。现实使用会复杂很多。
你好: 我是毛华望。加密的程序就这样完成了。谢谢观看。
新闻来源:半导体产业网,文中所述为作者独立观点,不代表icspec立场。更多精彩资讯请下载icspec App。如对本稿件有异议,请联系微信客服specltkj。
暂无评论哦,快来评论一下吧!
2026-06-23
2026-07-01
2026-07-15