stm32f4xx 加密

2019-11-19来源: eefocus关键字:stm32f4xx  加密  Flash  

一、ID获取


34 设备电子签名

电子签名存储在 Flash 区。可以使用 JTAG/SWD 或 CPU 对其进行读取。它包含出厂前编程 的标识数据,这些标识数据允许用户固件或其它外部设备将其接口与 STM32F4xx 微控制器 的特性自动匹配。

34.1 唯一设备 ID 寄存器(96 位)

唯一设备标识符最适合:

● 用作序列号(例如 USB 字符串序列号或其它终端应用程序)

● 在对内部 Flash 进行编程前将唯一 ID 与软件加密原语和协议结合使用时用作安全密钥以

提高 Flash 中代码的安全性

● 激活安全自举过程等

96 位的唯一设备标识符提供了一个对于任何设备和任何上下文都唯一的参考号码。用户永远 不能改变这些位。

96 位的唯一设备标识符也可以以单字节/半字/字等不同方式读取,然后使用自定义算法连接 起来。

基址:0x1FFF 7A10


程序:


static u32 Lock_Code;

 

void GetLockCode(void)

{

 //获取CPU唯一ID

 CpuID[0]=*(vu32*)(0x1fff7a10);

 CpuID[1]=*(vu32*)(0x1fff7a14);

 CpuID[2]=*(vu32*)(0x1fff7a18);

 printf("nn %x  %x  %xnn",CpuID[2],CpuID[1],CpuID[0]);

 //加密算法,很简单的加密算法

 Lock_Code=(CpuID[0]>>1)+(CpuID[1]>>2)+(CpuID[2]>>3);

}

运行结果:

1)keil  memroy窗口显示 ID地址处数据:

2)串口打印:

由上可知:该stm32芯片的96位 iD号  0x39353633      32334712   0025002a 


二、加密措施


简单方法: 主程序运行前,对比读取ID号 与设置ID是否一致。问题:每个stm32都需要单独配置ID比较值.如何解决?


参考:http://www.61ic.com/Technology/embed/201311/50853.html,待完善。

关键字:stm32f4xx  加密  Flash   编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic480473.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:STM32中常用的数据类型
下一篇:使用Ulink2的JTAG与SWD 调试stm32 区别

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

stm32f4xx 加密
一、ID获取34 设备电子签名电子签名存储在 Flash 区。可以使用 JTAG/SWD 或 CPU 对其进行读取。它包含出厂前编程 的标识数据,这些标识数据允许用户固件或其它外部设备将其接口与 STM32F4xx 微控制器 的特性自动匹配。34.1 唯一设备 ID 寄存器(96 位)唯一设备标识符最适合:● 用作序列号(例如 USB 字符串序列号或其它终端应用程序)● 在对内部 Flash 进行编程前将唯一 ID 与软件加密原语和协议结合使用时用作安全密钥以提高 Flash 中代码的安全性● 激活安全自举过程等96 位的唯一设备标识符提供了一个对于任何设备和任何上下文都唯一的参考号码。用户永远 不能改变这些位。96 位的唯一
发表于 2019-11-18
STM32F0xx_看门狗(独立+窗口)配置详细过程
)2015-07”建议参考该手册,以后如果你换用一种型号芯片也方便了解。今天的软件工程下载地址(360云盘):IWDG独立看门狗:https://yunpan.cn/cRfa8Qhi9g48Y  访问密码 2c3eWWDG窗口看门狗:https://yunpan.cn/cRfa5DvT9syUm  访问密码 7bf1STM32F0xx的资料可以在我360云盘下载:https://yunpan.cn/cS2PVuHn6X2Bj  访问密码 8c37Ⅲ、准备工作对于看门狗的编程,建议大家准备F0的参考手册和数据手册,方便查阅相关知识,没有的请到ST官网或到我360云盘下载。今天总结的软件工程是基于“TIM基本延时
发表于 2019-11-08
STM32F0xx_看门狗(独立+窗口)配置详细过程
STM32F42XX SPI3无输出问题
;            HAL_GPIO_Init(GPIOC,&GPIO_Initure);} 看起来配置没有问题,百思不得其解!经过查阅资料发现引脚的复用错了,GPIO_AF5_SPI3这里有问题,映射表如下:细心的可以发现,有GPIO_AF5_SPI3、GPIO_AF6_SPI3两种映射,到底使用哪一种才正确呢?查阅STM32F4XX中文手册,找到180页GPIO映射表,如下:很明显SPI3使用的是AF6,所以此处改为GPIO_AF6_SPI3,这样就可以正确的输出了!
发表于 2019-10-17
STM32F42XX SPI3无输出问题
STM32F1xx使用FIFO实现USART串口发送中断
才一位一位地把数据发出去。也就是说:DR空并不意味着发送已完成,移位寄存器空才是真正的发送完成。STM32的USART发送中断有两个:(1)“发送完成TC”中断,意思是移位寄存器已发送完成(2)"数据寄存器空TXE"中断,要注意这个中断!一上电数据寄存器DR中是没有数据的,所以,一旦开启TXE中断(当然,开全局中断也得是开着的),就会立即进入中断服务函数。这就指示我们:不要在初始化中开启TXE中断,而是要在打算发数据时才开。以下是F103C8T6的USART1初始化//串口1初始化void USART1_Init(u32 bound){ //GPIO端口设置 GPIO_InitTypeDef
发表于 2019-10-11
STM32F1xx使用FIFO实现USART串口发送中断
STM32中stm32f0xx_flash.icf文件的作用详解!
每个芯片开发商都会针对每款芯片来编写一个.icf文件就是传说中的链接文件。对于基本的应用,这个.icf文件足以满足你的工程需要。但有时也会需要改动,比如当你的项目要添加外部RAM时就要修改一下icf。1、Icf到底干了啥呢?定义了芯片存储空间的大小。定义ROM的大小和起始、结束地址。定义RAM的大小和起始、结束地址。 当然这些都是最基本的,你也可以设置以下的东西来匹配你的具体项目。链接时是否保存位块与符号设置你的启动过程设置你的堆与栈的大小和对齐方式修改编译器默认的初始化过程。关于默认库的处理等。。。 2、下面我简单介绍几个功能,详细请参考 EWARM_DevelopmentGuide2.1  
发表于 2019-09-21
STM32中stm32f0xx_flash.icf文件的作用详解!
美国呼吁脸书停止其信息加密计划
根据《路透社》报导,由于担忧脸书的加密信息计划会导致未来办案不利,美国希望脸书可以延缓相关计划。美国、英国以及澳大利亚在周四签订了特别数据协议,以利执法人员向科技公司提出数据申请,查看恐怖份子以及孩童骚扰者(child predator)的在线对话纪录。凭借这份协议,英国政府将能够直接要求美国科技公司提供数据,以进行犯罪调查。这样一来,取得信息所需的时间可以从原先的6个月至2年缩短为几周,甚至是几天的时间内。签订协议的同时,美国政府也向脸书发出公开信,呼吁执行长祖克伯暂缓信息加密计划。《路透社》指出,这项协议可能也会影响到苹果、谷歌、微软等公司处理用户加密数据的方式。由于美国国家失踪暨遭剥削儿童中心(National Center
发表于 2019-10-10
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved