Board logo

标题: S12X系列芯片加密 [打印本页]

作者: achao86926    时间: 2009-11-12 22:11     标题: S12X系列芯片加密

我再做这个功能,按照数据手册上写了个加密程序,其实就是设置Security寄存器,但是设置后发现程序不工作,不知道怎么搞的。
作者: strongchen    时间: 2009-11-13 15:04

你只是设置了security寄存器程序就不工作了吗?检查一下是否写的地址不对?
作者: achao86926    时间: 2009-11-14 16:04

版主好,我用的是s12p128芯片,这个与s12xs兼容。它的后门密码存储在全局地址0x3_FF00到0x3_FF07,每次复位时加载地址0x3_FF0F的值到安全寄存器FSEC中,我用#pragma定义了一个数据到地址FF0F,这个数据就是为了允许后门密钥访问和设置芯片为加密状态(最后一个位置1),在通过BDM刷写程序进去时,FF0F地址处的最低位总是被写成0(非加密状态)。这种加密的方法一直没能通过,也许通过BDM刷写时芯片会始终设置为非加密状态。
   后来我想个方法,就是通过串口发送写PFLASH指令,MCU接收到指令后就擦除FF0F所在扇区,然后写数据到FF0F处,这样复位后就可以将此数据加载进行FSEC寄存器了。但是复位向量在FFFE地址处(其他中断可以通过基址寄存器修改,复位向量地址似乎就固定死了),与FF0F在同一个扇区,这样一擦也把复位向量擦了,程序当然就不能执行了。
  之后我在擦除后再将复位向量写进去,这样程序就正常了。加密功能算是实现了,不过总觉得这个芯片是否还有其他方法将加密位写进去,而不用擦除复位入口。请问版主有没有高招,给小弟我指条路,不胜感激。在王宜怀老师著的一本书中介绍了一个方法,说是通过修改Linker.ld文件,将加密位映射到地址FF0F处,但是我一直没找到这个文件,不知道是否在codewarrior IDE中。
作者: achao86926    时间: 2009-11-14 16:15

加密问题先告一段落,剩下就是通过后门密钥解密了,我仍然通过SCI口进行控制,单片机将接收到的密码与存储的密码进行比对。在s12p中有条指令:Verify backdoor Access Key,只要将4个字的密码写进FCCOB寄存器中,然后开始运行(FSTAT_CCIF = 1)。
但我还没有调试成功,不能通过密码解密。这个我再继续调试
作者: daixiaoke    时间: 2009-11-17 13:47

你好,我这几天也在搞XD256和XEP100的解密工作,遇到了差不多同样的问题,希望能和你多交流一下,我的邮箱[email=xiaokedai@gmail.com,请问你的联系方式?xiaokedai@gmail.com,请问你的联系方式?[b[/email]] 4# achao86926
作者: daixiaoke    时间: 2009-11-17 13:53

加密的另一个相对简单的方法是:定义一个常量并定位到0xFF0F处,例如:
const word secure @ 0xFF0F = 0xFFBD;
即可,楼主可以试试。希望能一起讨论下解密的问题。
作者: chiusir    时间: 2009-11-20 19:20

做产品,这一块的确要解决,否则复制品会层出不穷啊!
作者: chiusir    时间: 2009-11-20 19:24

加密问题先告一段落,剩下就是通过后门密钥解密了,我仍然通过SCI口进行控制,单片机将接收到的密码与存储的密码进行比对。在s12p中有条指令:Verify backdoor Access Key,只要将4个字的密码写进FCCOB寄存器中,然后 ...
achao86926 发表于 2009-11-14 16:15
怀疑这种方法的可行性,如果能行的话,经过若干次,若干天的尝试,最后肯定可以破解密码。印象中,加密后只能擦除,不能读取了。
作者: daixiaoke    时间: 2009-11-23 22:25

这个是没问题的,我已经在XEP100的上验证过了。 8# chiusir
作者: achao86926    时间: 2010-1-23 15:24

加密后是可以解密然后读取的。这个我已经试过了,为了防止别人经过若干次的破解,程序内部可以设置解密失败次数。



8# chiusir
作者: achao86926    时间: 2010-1-23 15:27

这个看上去是一个好方法,我试一试。我以前想过用#pragma DATA_SEG 来定义一个字,但是行不通的。 6# daixiaoke
作者: agon2010@live.c    时间: 2010-11-19 14:58

加密芯片,也可以考虑一下AT88SA102S,ATMEL首款密钥256位的加密芯片,也是行业第一款256位密钥的加密芯片,开发比较简单,公开的算法和源码,MSN:agon2010@live.cn




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0