搜索
bottom↓
回复: 48

请教大家通讯数据加密用啥芯片好,谢谢。

[复制链接]

出0入36汤圆

发表于 2022-2-17 12:36:32 | 显示全部楼层 |阅读模式
1、打算对数据加密后,再从串口发出去。
2、用的stm32g070,不带加密算法功能。
3、打算用啥加密芯片来实现数据加密,不想通过软件算法。
请大家帮忙推荐个好用的加密芯片,谢谢。

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2022-2-17 12:41:13 | 显示全部楼层
通讯链路的加密,你用软件处理啊,AES,DES也不麻烦,硬件不太适合

出0入36汤圆

 楼主| 发表于 2022-2-17 12:43:09 | 显示全部楼层
plc_avr 发表于 2022-2-17 12:41
通讯链路的加密,你用软件处理啊,AES,DES也不麻烦,硬件不太适合
(引用自2楼)

我想把数据发到加密芯片,加密芯片吐出来加密后的数据,我发走。

出0入0汤圆

发表于 2022-2-17 13:05:14 | 显示全部楼层
拆机后,直接从PCB放探针,一样可以截取数据啊!

出0入36汤圆

 楼主| 发表于 2022-2-17 13:12:50 | 显示全部楼层
阿豪博士 发表于 2022-2-17 13:05
拆机后,直接从PCB放探针,一样可以截取数据啊!
(引用自4楼)

不可能把所以的设备都拆开,探针放上截取数据啊,数据是实时变化的。

如果是串口,别人可以把线接上,监听截取。

出215入169汤圆

发表于 2022-2-17 13:32:00 | 显示全部楼层
看你要多少通信速率,根据速率选取合适的处理器件。高速加密可以用ice40lp384之类的小fpga

出0入36汤圆

 楼主| 发表于 2022-2-17 13:34:05 | 显示全部楼层
monkeynav 发表于 2022-2-17 13:32
看你要多少通信速率,根据速率选取合适的处理器件。高速加密可以用ice40lp384之类的小fpga ...
(引用自6楼)

就是串口,最高也就用115200了。

出0入0汤圆

发表于 2022-2-17 13:36:48 | 显示全部楼层
还不如换个高级的CPU

出215入169汤圆

发表于 2022-2-17 13:38:40 | 显示全部楼层
redworlf007 发表于 2022-2-17 13:34
就是串口,最高也就用115200了。
(引用自7楼)

试下mcu跑speck算法,网上大量的开源实现。
https://www.amobbs.com/thread-5715264-1-1.html

出0入0汤圆

发表于 2022-2-17 14:03:40 | 显示全部楼层
看你具体需求,只是线路加密用对称算法就软件计算挺好。国内的加密芯片一般都带商密认证,资料和库只能找原厂,量不大人家不理你。

出0入0汤圆

发表于 2022-2-17 14:07:47 | 显示全部楼层
你要用什么加密算法?

出130入20汤圆

发表于 2022-2-17 14:10:36 | 显示全部楼层
移植一个加密算法很简单的,坛子里有资料,直接复制到C程序里,调用函数解密加密就行。

出0入36汤圆

 楼主| 发表于 2022-2-17 14:21:57 | 显示全部楼层
lyz3432 发表于 2022-2-17 14:07
你要用什么加密算法?
(引用自11楼)

我也不知道用啥加密算法好。

出0入36汤圆

 楼主| 发表于 2022-2-17 14:22:12 | 显示全部楼层
shuiluo2 发表于 2022-2-17 14:10
移植一个加密算法很简单的,坛子里有资料,直接复制到C程序里,调用函数解密加密就行。 ...
(引用自12楼)

我找下,谢谢了。

出1325入193汤圆

发表于 2022-2-17 15:31:37 | 显示全部楼层
AES,DES   随便一个  一般工业产品可以满足通讯加密要求  

出40入518汤圆

发表于 2022-2-17 15:58:45 | 显示全部楼层
我觉得简单的   引入随机数+移位+抑或,都挺难破解的

出50入0汤圆

发表于 2022-2-17 16:08:36 | 显示全部楼层
记得以前在论坛看到某个帖子里说过,某进口设备的通信采用CRC校验,但是多项式不是标准的,楼主可以试试这个方案,反正STM32G070里面有硬件CRC计算,使用自定义的CRC多项式应该也能实现一定程度上的加密。

出0入36汤圆

 楼主| 发表于 2022-2-17 17:20:47 | 显示全部楼层
智涅 发表于 2022-2-17 15:58
我觉得简单的   引入随机数+移位+抑或,都挺难破解的
(引用自16楼)

引入个随机数,给每个数据移位几位,然后再与某个数字亦或?

出0入0汤圆

发表于 2022-2-17 17:39:41 | 显示全部楼层
非对称会安全点

出40入518汤圆

发表于 2022-2-17 17:43:33 | 显示全部楼层
redworlf007 发表于 2022-2-17 17:20
引入个随机数,给每个数据移位几位,然后再与某个数字亦或?
(引用自18楼)

是的,随机数的引入,你即使经常收发同样的指令,别人看到的数据也会变来变去,比较难找到规律。然后就是简单的数据打乱(移位,抑或),再避免一下全0全1之类的特殊数据,计算复杂度可以说开销是 非常小

出0入36汤圆

 楼主| 发表于 2022-2-17 17:48:33 | 显示全部楼层
智涅 发表于 2022-2-17 17:43
是的,随机数的引入,你即使经常收发同样的指令,别人看到的数据也会变来变去,比较难找到规律。然后就是 ...
(引用自20楼)

我想想看,咋样搞个随机数,我找找看有没有现成的可以抄,哈哈。
我上次测别人的一个设备,我就发现,同样内容,每次抓到的数据都在变。

出200入2554汤圆

发表于 2022-2-17 17:55:54 | 显示全部楼层
前阵子烂苹果版本的盖革计固件,我就写了一套随机加扰,用于确保串口加密传输。
序列直接就是 ROM 的一个子集。

出40入518汤圆

发表于 2022-2-17 17:57:38 | 显示全部楼层
redworlf007 发表于 2022-2-17 17:48
我想想看,咋样搞个随机数,我找找看有没有现成的可以抄,哈哈。
我上次测别人的一个设备,我就发现,同 ...
(引用自21楼)

方法1:rand()就可以获取,可能是需要#include "intrins.h"。这个应该是m序列方式软件生成,mcu复位后,按顺序输出的随机数是固定序列。当然可以引入eerom或者flash可以避免一下。
方法2:adc采样,最低几位是噪声,可以用这个跟rand()组合一下,基本就是真随机。
方法3:如果设备有其它输入信息(如按键、其它通信或者传感器触发),用个定时器计数的方式,因为触发的时间基本是随机的,弄一下就是一个随机数。

出0入0汤圆

发表于 2022-2-17 18:00:40 | 显示全部楼层
智涅 发表于 2022-2-17 15:58
我觉得简单的   引入随机数+移位+抑或,都挺难破解的
(引用自16楼)

这是基于算法保密的加密模式,自己用完全没问题。
但正规的加解密算法是公开的,保密的只有秘钥。
就是即使研发人员拿银行KEY的源码,也对该KEY的攻击成功不了。

出0入36汤圆

 楼主| 发表于 2022-2-17 18:08:45 | 显示全部楼层
智涅 发表于 2022-2-17 17:57
方法1:rand()就可以获取,可能是需要#include "intrins.h"。这个应该是m序列方式软件生成,mcu复位后, ...
(引用自23楼)


我用ADC采样的最低几位,做种子,然后srand(种子),搞出随机数,然后用随机数做某种乱序规则。
那么我发送的数据包里面,还得把这个随机数带上吧,不然接收端没法恢复数据。

出40入518汤圆

发表于 2022-2-17 18:38:16 | 显示全部楼层
redworlf007 发表于 2022-2-17 18:08
我用ADC采样的最低几位,做种子,然后srand(种子),搞出随机数,然后用随机数做某种乱序规则。
那么我发 ...
(引用自25楼)

是的,都要传过去,用循环移和抑或计算,解密就是反过来操作,加密用什么数据解密就用什么数据

出350入477汤圆

发表于 2022-2-17 18:38:48 来自手机 | 显示全部楼层
本帖最后由 redroof 于 2022-2-17 18:40 编辑
redworlf007 发表于 2022-2-17 18:08
我用ADC采样的最低几位,做种子,然后srand(种子),搞出随机数,然后用随机数做某种乱序规则。
那么我发 ...

(引用自25楼)


是的。在自己的系统内部这样做就可以了。
随机数带在每个数据包里,然后用自己内部保存的一个密码加上这个随机数,来加密该数据包后面的内容。你能做的也就这样了。加密算法用正规的AES,那么别人除非拿到你内部的密码,否则完全无解。

出40入518汤圆

发表于 2022-2-17 18:40:56 | 显示全部楼层
vuo50z 发表于 2022-2-17 18:00
这是基于算法保密的加密模式,自己用完全没问题。
但正规的加解密算法是公开的,保密的只有秘钥。
就是即 ...
(引用自24楼)

这位专家[棒]
确实我这种就是小打小闹的用法

出0入36汤圆

 楼主| 发表于 2022-2-17 18:45:45 | 显示全部楼层
智涅 发表于 2022-2-17 18:38
是的,都要传过去,用循环移和抑或计算,解密就是反过来操作,加密用什么数据解密就用什么数据 ...
(引用自26楼)

嗯,这个软件方法是最好搞得了,我再去找找看他们说的那种加密芯片,把明文发过去,读回来的就是密文,解密反之。

出0入36汤圆

 楼主| 发表于 2022-2-17 18:48:24 | 显示全部楼层
redroof 发表于 2022-2-17 18:38
是的。在自己的系统内部这样做就可以了。
随机数带在每个数据包里,然后用自己内部保存的一个密码加上这 ...
(引用自27楼)

内部保存的密码?我出厂的时候,再给内部烧录进去一个密码?

出350入477汤圆

发表于 2022-2-17 18:50:32 来自手机 | 显示全部楼层
vuo50z 发表于 2022-2-17 18:00
这是基于算法保密的加密模式,自己用完全没问题。
但正规的加解密算法是公开的,保密的只有秘钥。
就是即 ...

(引用自24楼)

正规的加密算法也很容易找啊,AES的代码网上有一大堆,找一个来用就行了。不是太慢的单片机都跑得动,包括那些快一点的单周期51在内。当然老的12周期传统51或者更慢的cpu可能跑不动,反正现在新做的系统不会用那种cpu了

出350入477汤圆

发表于 2022-2-17 18:51:50 来自手机 | 显示全部楼层
redworlf007 发表于 2022-2-17 18:48
内部保存的密码?我出厂的时候,再给内部烧录进去一个密码?
(引用自30楼)

含在你代码里也行,但那样被人破掉一个设备就全完了。正规用法这个密码肯定得每个设备不一样

出350入477汤圆

发表于 2022-2-17 18:55:00 来自手机 | 显示全部楼层
redworlf007 发表于 2022-2-17 18:48
内部保存的密码?我出厂的时候,再给内部烧录进去一个密码?
(引用自30楼)


你通迅的两边是属于同一个产品内部吗?还是可以拆开的两个?如果能拆开是否允许两边随便搭配混用?
这决定了你可以怎么规划加密算法

出0入36汤圆

 楼主| 发表于 2022-2-17 18:56:26 | 显示全部楼层
redroof 发表于 2022-2-17 18:51
含在你代码里也行,但那样被人破掉一个设备就全完了。正规用法这个密码肯定得每个设备不一样 ...
(引用自32楼)

那我发送数据给后台的时候,这个密码也在数据包里面一起发给后台?不然后台咋知道我这个密码。

或者是我的每个单片机的ID号码,在出厂注册时候把,在云平台上,把ID号码对应的密码保存?

出0入36汤圆

 楼主| 发表于 2022-2-17 18:58:16 | 显示全部楼层
redroof 发表于 2022-2-17 18:55
你通迅的两边是属于同一个产品内部吗?还是可以拆开的两个?如果能拆开是否允许两边随便搭配混用?
这决 ...
(引用自33楼)


我前端设备是单片机,串口上挂的433,后台设备是一个工控机,串口上接的433,N个前端设备,连一个工控机。

设备安装的时候,通过唯一序列号,在工控机上绑定前端设备。

出350入477汤圆

发表于 2022-2-17 19:16:42 | 显示全部楼层
redworlf007 发表于 2022-2-17 18:56
那我发送数据给后台的时候,这个密码也在数据包里面一起发给后台?不然后台咋知道我这个密码。

或者是我 ...
(引用自34楼)

对啊,有云端的当然每个设备有自己的不同的密码,第一次上线告诉云端保存。
或者反过来云端在设备第一次上线的时候给设备分配密码也行

出100入113汤圆

发表于 2022-2-17 19:17:02 | 显示全部楼层
对称加密 AES 算法,单片机自己实现,有大量开源的资料,本论坛也有。
其实更难的是秘钥交换,需要用到非对称加密算法,这个实现就复杂很多了,例如 ECC 算法。
如果是固定密钥,建议使用单片机实现 AES 算法即可。

出100入113汤圆

发表于 2022-2-17 19:22:29 | 显示全部楼层
本帖最后由 saccapanna 于 2022-2-18 08:34 编辑
redworlf007 发表于 2022-2-17 18:56
那我发送数据给后台的时候,这个密码也在数据包里面一起发给后台?不然后台咋知道我这个密码。

或者是我 ...
(引用自34楼)


密钥交换,有标准的算法,例如基于椭圆曲线密码的ECCDH。建议看看密码学相关的资料。我记得有本书叫《图解密码技术》,可以理清整个加密体系的主要框架。

出0入36汤圆

 楼主| 发表于 2022-2-17 19:24:55 | 显示全部楼层
saccapanna 发表于 2022-2-17 19:22
密钥交换,有标准的算法,例如基于椭圆曲线密码的ECCDH。建议看看密码学相关的资料。我记得有本书叫《图 ...
(引用自38楼)

好,我去学习下,谢谢。

出350入477汤圆

发表于 2022-2-17 20:25:07 来自手机 | 显示全部楼层
saccapanna 发表于 2022-2-17 19:17
对称加密 AES 算法,单片机自己实现,有大量开源的资料,本论坛也有。
其实更难的是秘钥交换,需要用到非对 ...

(引用自37楼)

连秘钥交换都要做的话,就直接上openssl算了,该有的算法都齐了。https已经替你做了这些。

出0入36汤圆

 楼主| 发表于 2022-2-18 10:21:07 | 显示全部楼层
redroof 发表于 2022-2-17 20:25
连秘钥交换都要做的话,就直接上openssl算了,该有的算法都齐了。https已经替你做了这些。 ...
(引用自40楼)

我认为做适度的加密就好了,适度提高破解门槛,不是技术含量很高的板子,别人抄了硬件重新写应用,也费不了啥事。

出350入477汤圆

发表于 2022-2-18 10:45:12 | 显示全部楼层
本帖最后由 redroof 于 2022-2-18 10:59 编辑
redworlf007 发表于 2022-2-18 10:21
我认为做适度的加密就好了,适度提高破解门槛,不是技术含量很高的板子,别人抄了硬件重新写应用,也费不 ...
(引用自41楼)


我记得你是用NUC980的,这样完全可以跑起一个openssl啊,所有加密算法全套都有了。
可以用完全正规的做法,每个设备带一个自己的证书,服务器也有自己的证书,数据传输使用标准的TLS通道,就跟https协议完全一样就行
这样保证在你系统外面用任何方法也不能解开你的数据。
要做就把事情做绝,哈哈,只要付岀一点cpu性能就行了。记住服务器证书要用你自己的一个根证书来签名,根证书的公钥也装在你设备里。
想破解的人必须去破你的设备,永久打消别人想抓取你的数据的可能。

出0入36汤圆

 楼主| 发表于 2022-2-18 11:08:54 来自手机 | 显示全部楼层
redroof 发表于 2022-2-18 10:45
我记得你是用NUC980的,这样完全可以跑起一个openssl啊,所有加密算法全套都有了。
可以用完全正规的做法 ...

(引用自42楼)

nuc980上可以,现在为了降成本,把nuc980
去掉了,复杂的业务功能都砍掉,只留一个单片机,把f103换成了stm32g070了,预留了ATSHA204A这个,出货注册的时候把密钥存铁电里面,不存单片机里面,通讯再简单加密,后台联网认证id号等等。

出0入36汤圆

 楼主| 发表于 2022-2-18 22:41:14 来自手机 | 显示全部楼层
本帖最后由 redworlf007 于 2022-2-18 22:43 编辑
shuiluo2 发表于 2022-2-17 14:10
移植一个加密算法很简单的,坛子里有资料,直接复制到C程序里,调用函数解密加密就行。 ...
(引用自12楼)


今天在rtt的里面撸了一个加密包,里面好多种加密c源码,调用加解密就好了。

出0入36汤圆

 楼主| 发表于 2022-2-18 23:03:26 来自手机 | 显示全部楼层
https://github.com/R    T-Thread-packages/tinycrypt/tree/master/include

出130入20汤圆

发表于 2022-2-19 22:20:45 | 显示全部楼层
redworlf007 发表于 2022-2-18 22:41
今天在rtt的里面撸了一个加密包,里面好多种加密c源码,调用加解密就好了。 ...
(引用自44楼)

RTT 里各种组件确实全,添加工具也很方便

出0入36汤圆

 楼主| 发表于 2022-2-20 12:04:58 | 显示全部楼层
shuiluo2 发表于 2022-2-19 22:20
RTT 里各种组件确实全,添加工具也很方便
(引用自46楼)

我是把加密的代码撸出来用了,没上RTT,RTT太占资源了。
STM32G070的ram比较少。

出1325入193汤圆

发表于 2022-2-20 12:54:18 | 显示全部楼层
redworlf007 发表于 2022-2-18 22:41
今天在rtt的里面撸了一个加密包,里面好多种加密c源码,调用加解密就好了。 ...
(引用自44楼)

加密包   共享坛友吧

出0入36汤圆

 楼主| 发表于 2022-2-20 16:57:48 | 显示全部楼层
lb0857 发表于 2022-2-20 12:54
加密包   共享坛友吧
(引用自48楼)

上传了,感谢RTT。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-16 06:08

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表