Lora Basics调制解调器和Lora Edge文档
加密引擎¶
介绍¶
加密引擎为基于AES-128的算法计算以及专用的RAM和闪存提供了专用的硬件加速器,以处理诸如加密键之类的敏感参数,而无需读取访问。
加密引擎提供了几个功能:
由于其硬件加速器,提高了功率效率
减少了记忆足迹,这要归功于其全面的API
由于其专用的闪光灯和RAM组合,改进了安全性
简化了Lorawan®标准实施,这要归功于直接适用于Lorawan消息的基础
逐步过程¶
上下文管理¶
加密上下文描述了可以通过加密引擎(键和参数)保存在Flash中的数据集。
为了确保所有数据准备就绪,最好的做法是在电动上方或离开睡眠模式时恢复加密环境而无需保留。
如有必要,恢复加密环境。这将通过闪光灯到RAM加载上下文
cryptorestorefromflash()
命令。实施与应用程序相关的操作(例如,加密数据,计算AES-CMAC等)。
如果修改了加密环境,请保存加密环境。这将通过
cryptostoretoflash()
命令。
设置并使用钥匙¶
恢复加密环境。
与
cryptosetkey()
。保存加密环境。这可以在进入睡眠模式之前的任何时间进行,而无需保留或重置芯片。
执行加密操作(例如,
cryptoAesencrypt()
)具有正确的密钥ID。
笔记
并非所有密钥都可以由用户设置。
设置并使用参数¶
恢复加密环境。
设置一个参数
cryptosetparam()
。保存加密环境。这可以在进入睡眠模式之前随时完成,而无需保留或重置芯片。
在需要时,可以阅读参数
cryptogetParam()
。
深入的行为¶
加密操作¶
加密引擎实现了FIPS Pub 197和ISO/IEC 18033-3中定义的AES-128加密。
内存管理¶
加密引擎有自己的RAM和闪存区域。
专用RAM分为三个地址空间:
一个受保护(仅写)地址空间存储密钥
密码核心使用的受保护(读 /写)地址空间
一个未保护的地址空间来存储设备参数(例如EUI)
专用的闪光灯在加密引擎的直接访问下。(CPU没有直接访问。)它用于存储受保护和未保护的RAM地址空间。这个专用的闪存区域的目的是使电路能够从低功率模式恢复其状态。
为了减少功耗并优化处理时间,所有操作均在RAM中执行。通过用户请求将上下文保存在闪存中。
当芯片进入睡眠模式并保留时,加密引擎的RAM将保留。
故障排除¶
Lora Basics调制解调器和Lora Edge文档
其他资源 - 视频