打印
[电路设计]

有限的ROM, 无限的ISP应用,可行?

[复制链接]
2418|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
X-Hawk|  楼主 | 2011-8-15 15:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hotpower 于 2011-8-16 01:51 编辑

LDROM大小为4K,为它写程序时稍不注意,代码就超过4K.
要在其中实现ISP,可谓难上加难。

周末在家琢磨,不是还有RAM,不拿来用可惜了。

考虑这样一个方案,将ISP分为基本的和扩展的两部分
1. 写在LDROM里的,是个“基本的部分”。
    它负责从USB获得“扩展部分”程序,将程序放到RAM里。

2. 实际的ISP烧写动作,由“扩展部分”完成。
   可以载入一个“扩展部分”,完成APROM的烧写,
   再载入新的“扩展部分”,完成外接SPI Flash的烧写,
   再载入新新的“扩展部分”,完成加密解密的算法。
   。。。

很多的“扩展部分”,存放在Windows的上位机程序里,
于是ISP固件,就可以有无尽的可能了,不再受限制于4K.

还有一个问题,可以随意载入“扩展部分”,安全性如何保证?
载入一个“偷固件”的程序,可不可以?
所以,就有第3个考虑:

3. 固定写在LDROM中的ISP程序,作为“基本的部分”,
   只接受它“认可”的“扩展部分”。
   新写入到RAM中的“扩展部分”生效前,必须通过md5或sha验证。
   不是随便哪个“扩展部分”都可以运行的。

已经初步试验出结果,效果不错。

xhawk基本不懂密码学,还好天下程序有的抄,md5和sha算hash值,都GPL来了,
经过优化也不大,LDROM足够放下。
但是现在有个担心,md5或sha的hash值,被假冒的可能性多大?

相关帖子

沙发
X-Hawk|  楼主 | 2011-8-15 16:32 | 只看该作者
sha1和md5,现在还安全吗?

使用特权

评论回复
板凳
hotpower| | 2011-8-15 16:37 | 只看该作者
好思路。

俺的hotwc3散列函数就可替代MD5等,因为可以证明它的不可逆,故根本不需要多少轮。

建议国军重视hotwc3。

使用特权

评论回复
地板
X-Hawk|  楼主 | 2011-8-15 16:51 | 只看该作者
好思路。

俺的hotwc3散列函数就可替代MD5等,因为可以证明它的不可逆,故根本不需要多少轮。

建议国军重视hotwc3。
hotpower 发表于 2011-8-15 16:37


hotwc3好东西!有机会学习下,不定还能用上!

国军好像没朝这方面考虑。
这个是酒鬼周末胡思乱想的东西,不算国军的:)

使用特权

评论回复
5
hotpower| | 2011-8-15 16:54 | 只看该作者
现在**MD5主要依靠散列值数据库。
即建立MD5数组,找出一一对应关系。
由于任何散列函数都会在理论上发生碰撞
即多个MD5数将对应多个散列值,即形成伪造。
这种几率很小,故难以发生碰撞。
由于MD5靠几种运算的混淆,目的是将人搞晕,很难证明它的不可逆,不知它有陷门否?

hotwc3散列函数只是简单地运行了一个不可逆的CRC运算,只要证明它的不可逆即可。

这个很好证明,即使幼儿园的小朋友皆可。

使用特权

评论回复
6
hotpower| | 2011-8-15 16:56 | 只看该作者
现在**MD5主要依靠散列值数据库。
即建立MD5数组,找出一一对应关系。
由于任何散列函数都会在理论上发生碰撞
即多个MD5数将对应一个散列值,即形成伪造。
这种几率很小,故难以发生碰撞。
由于MD5靠几种运算的混淆,目的是将人搞晕,很难证明它的不可逆,不知它有陷门否?

hotwc3散列函数只是简单地运行了一个不可逆的CRC运算,只要证明它的不可逆即可。

这个很好证明,即使幼儿园的小朋友皆可。

使用特权

评论回复
7
hotpower| | 2011-8-15 17:01 | 只看该作者
抱歉,5楼写错了一个最关键的字,这个字很关键,故重写之。

这次助学套件获得者的确认码就是由hotwc3单向散列函数发出的,即使是告诉你它的密钥(如MD5的初始值),你也不知道它的原文。

使用特权

评论回复
8
X-Hawk|  楼主 | 2011-8-15 17:15 | 只看该作者
大叔有意思:)
科学精神无处不在!

使用特权

评论回复
9
hotpower| | 2011-8-15 17:45 | 只看该作者
今天开始做PHP菜鸟,学习做www.hotwc3.com,让助学开发板上网,做到远程控制。

使用特权

评论回复
10
电子write_cai| | 2011-8-15 22:12 | 只看该作者

使用特权

评论回复
11
plc_avr| | 2011-8-16 05:47 | 只看该作者
好思路,顶!

使用特权

评论回复
12
vv123456| | 2011-8-16 15:17 | 只看该作者
好样的

使用特权

评论回复
13
murex| | 2011-8-18 10:41 | 只看该作者
啥时候帮我弄个ldrom可以通过485总线来ISP,就是想用总线来对从机更新程序,但不能让别的从机更新;因为俺不懂这个,哈

使用特权

评论回复
14
hotpower| | 2011-8-18 12:01 | 只看该作者
找酒鬼

使用特权

评论回复
15
X-Hawk|  楼主 | 2011-8-18 15:33 | 只看该作者
啥时候帮我弄个ldrom可以通过485总线来ISP,就是想用总线来对从机更新程序,但不能让别的从机更新;因为俺不懂这个,哈
murex 发表于 2011-8-18 10:41


开发还是要靠自己。自己动手,丰衣足食。呵呵

使用特权

评论回复
16
plc_avr| | 2011-8-19 06:18 | 只看该作者
啥时候帮我弄个ldrom可以通过485总线来ISP,就是想用总线来对从机更新程序,但不能让别的从机更新;因为俺不懂这个,哈
murex 发表于 2011-8-18 10:41

----------------------------------------------------------------------------
菜地用M0芯片?还是AVR,两者都是通过ISP或BOOTLOAD来完成升级,和一对一升级差不多,就是多了个地址选择功能。上位机发送相应命令,对应地址的下位机自动进入ISP或BOOTLOAD,上位机发送升级数据,直到完成。在升级过程中其它的下位机不得主动发送任何数据。我过段时间在AVR上搞多机升级,AVR BOOTLOAD单机升级部分几年前就搞好了,呵呵.......

使用特权

评论回复
17
murex| | 2011-8-19 10:06 | 只看该作者
这个bootload我没搞过,哈,主要太菜,以前一直以4位为主,这几年采用8位机,早就落伍N年了

使用特权

评论回复
18
plc_avr| | 2011-8-19 12:56 | 只看该作者
4位机,俺没玩过,上手直接AVR,连51都没搞过。听说搞4位机的工资可不低,哈哈.......

使用特权

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

本版积分规则

3

主题

380

帖子

3

粉丝