打印

STM32加密性能?

[复制链接]
8076|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
TRUE_ARM|  楼主 | 2007-11-25 12:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
没有找到加密说明? 有谁知道吗?
沙发
mcu430| | 2007-11-25 13:27 | 只看该作者

????///??????/

使用特权

评论回复
板凳
香水城| | 2007-11-25 17:41 | 只看该作者

关于STM32的加密功能,请看STM32编程手册


STM32F10x闪存编程手册[/url] —— [url=http://www.st.com/stonline/products/literature/ds/13259.pdf]英文下载 中文下载
 
Flash存储器可以分段设置读和/或写保护,不知楼主问的是不是这个。

使用特权

评论回复
地板
TRUE_ARM|  楼主 | 2007-11-25 20:43 | 只看该作者

我指的是"知识产权"保护

防止别人盗窃软件。类似于LPCXXX系列的加密功能。

使用特权

评论回复
5
TRUE_ARM|  楼主 | 2007-11-25 20:55 | 只看该作者

Unprotection

Unprotection
To disable the read protection:
● Erase the entire small information block (user part). As a result, the read protection code (RDP) will be 0xFF. At this stage the read protection is still enabled.
● Program the correct RDP code 0xA5 to unprotect the memory. This operation first forces a Mass Erase of the main block.
● Reset the device (POR Reset) to reload the option bytes (and the new RDP code), andto disable the read protection.

而这些只要满足该流程即可完成读保护的“解密”工作,不能算是软件保护。

使用特权

评论回复
6
香水城| | 2007-11-25 22:14 | 只看该作者

解除写保护必须先把Flash存储区擦除,这不算保护吗?

加了写保护后,Flash中的内容不能被读出,而只有在擦除了Flash存储区之后,才能取消这个保护,即保护取消后所有内容都被销毁了,没东西可读了,这不能算是软件保护吗?

好像LPCXXX系列的所谓加密功能也是防止程序被读出,似乎并没有特别之处。LPCXXX的东西看得不多,还望楼上的朋友指教,谢谢。

使用特权

评论回复
7
mcu430| | 2007-11-26 09:28 | 只看该作者

有道理啊

使用特权

评论回复
8
浪淘沙| | 2007-11-26 09:49 | 只看该作者

6楼的可能是笔误吧,楼主谈的是读保护

5楼的那段英文也是关于读保护的,6楼的解释也是关于读保护的。

使用特权

评论回复
9
fhwclq| | 2007-11-27 09:19 | 只看该作者

LPC&STM32各有缺点。

STM32这样对FLASH读出保护后,连程序本身都无法读取自身。这样我们定义常量和数组时,就要必须分散加载,将数组放到不加密的FLASH中,但这些数组常量往往是非常重在的数据。

我刚开始使用STM32不知理解的对不对。

使用特权

评论回复
10
浪淘沙| | 2007-11-27 10:59 | 只看该作者

9楼的理解是不对的

相信你没有仔细地看STM32的相关手册,请看《STM32F10x的闪存编程手册》(英文版下载 中文版下载

在2.4.1节(Read protection)有这样的描述:
This protection is activated by setting an option byte in the information block. Once the protection byte is programmed to a value, Flash memory read accesses are not allowed when the device is in debug mode. All features linked to loading and executing code in RAM are still active (for example, JTAG/SWD, boot in RAM, etc.) and this can be used to disable the read protection (access to the Flash memory still denied).
中文译文为:这项保护是通过设置信息块中的一个选择字节启动的。当保护字节被写入相应的值以后,在调试模式中将不允许读出闪存存储器,所有在RAM中加载和执行的功能(如JTAG/SWD,从RAM启动等)仍然有效,这样可以用于解除读保护(访问闪存仍然被禁止)。
 
在第2.4.2节还有一张表清楚地列出了读保护和写保护的作用范围:

 
从上述文字和列表中可以看出,当读保护生效时CPU执行程序时可以读受保护的Flash区,有两个例外情况:1)调试执行程序时;2)从RAM启动并执行程序时。
 
所以说9楼的理解“STM32这样对FLASH读出保护后,连程序本身都无法读取自身”是不对的。

使用特权

评论回复
11
浪淘沙| | 2007-11-27 15:38 | 只看该作者

对STM32的Flash施加读保护后,Flash的第0~3页也将处于写保护状

除了我在10楼解释的特点之外,STM32还有一个特别的保护,即对Flash存储区施加读保护后,即使没有启用写保护,Flash的第0~3页也将处于写保护状态,这是为了防止修改复位或中断向量而跳转到RAM区执行非法程序代码。

使用特权

评论回复
12
okman1999| | 2009-2-6 14:34 | 只看该作者

使用芯片的唯一ID即可啦。

STM32芯片具有一个96位的唯一ID号,那么只要程序中加一段ID识别程序即可。比方说这次生产的产品有5K,那么我会从芯片厂家获得这5K芯片的ID范围,在程序中添加一段ID校验,即使有人**读出了本程序,在其他批次的STM32芯片也无法正常运行啊。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

124

主题

454

帖子

1

粉丝