|
|
发表于 2008-11-10 10:46:36
|
显示全部楼层
来自: 中国广东汕头
AT89C系列单片机OTP加密模式原理 ( _+ ~* T5 @& w( }6 I \
这种编程加密算法烧坏加密锁定位(把芯片内的硅片击穿),面不破坏其它部分,不占用# R& l, ?4 @( w
单片机任何资源。加密锁定位被烧坏后不再具有擦除特性,89C51/52/55有3个加密位进一" y l4 g* z- I9 B2 {$ s1 T
步增加了加密的可靠性。一旦用OTP模式加密后,单片机片内的加密位和程序存储器内的数
* I; v. A2 j7 s$ V8 _据就不能被再次擦除,89C51/52/55单片机就好象变成了一次性编程的OTP型单片机一样。
3 E/ Z! s; R9 h* ^$ c& [ H如果用户程序长度大于89C51单片机片内存储器的容量,也可使用OPT模式做加密,具体方8 p! F: I' q. ^' l
法如下:* M* [% i. B9 U. G% V* n" P& Y; _! Q, }
1、按常规扩展一片大容量程序存储器,如27C512(64K)。
' z/ ^# q! f$ c( |: E2、把关键的程序部分安排在程序的前4K中。
7 S; }6 j" p# `0 |) F# q8 b/ Q; S. F3、把整个程序写入27C512,再把27C512的前4K填充为0。 4 p) ~# M$ ]1 J/ Y% ]3 _- F+ t7 E
4、把程序的前4K固化到AT89C51中,用OPT模式做加密。
0 Y U0 h& m" @2 h' ~5、把单片机的EA脚接高电平。 这样程序的前4K在单片机内部运行,后60K在片外运行。盗
( S( `. f- K: ?& R K# B* G' U版者无法读出程序的前4K程序,即使知道后60K也无济于事。
( }) K4 I( V8 Y0 o) M: M4 d o9 U+ IAT89C系列单片机炼总线加密模式原理
1 [+ C, J: ~$ e% Y; T因为单片机片内的程序代码最终都要通过数据总线读出,如果指导单片机的数据总线的其; D9 {0 E+ J1 _3 l: Y
中一条线永久性地破坏,解密者即使擦除了加密位,也无法读出片内的程序的正确代码。
- {( ]6 O# [* p9 Z; c9 [89C1051/2051的数据总线为P1口烧总线模式烧坏89C2051的P1.0端口,原程序代码为02H、
& \" `& ~: _7 h& R" x01H、00H。读出的数据则为03H,01H,00H。其中最低位始终为1,读出的程序代码显然为
% z2 L1 g+ H: l9 @ A1 I9 A6 L9 m错码。这种加密模式用于加密89C1051/2051单片机。缺点是占用单片机的资源。开发设计
4 b8 C# n) X g$ M8 ]- Y- v人员在设计单片机硬件系统时只要预留出口线P1.0不用,以后就可用烧总线模式对单片机! ]1 a4 T9 w" b6 O. |1 Z8 P& J
加密。5 ^5 z" i- p; f7 ~- P
AT89C 系列单片机解密原理
8 U/ |8 R. G2 Q( l单片机解密简单就是擦除单片机片内的加密锁定位。由于AT 89C系列单片机擦除操作时序设计上的不合理。使在擦除片内程序之前首先擦除加密锁定位成为可能。AT89C系列单片机擦除操作的时序为:擦除开始---->擦除操作硬件初始化(10微秒)---->擦除加密锁定位(50----200微秒)--->擦除片内程序存储器内的数据(10毫秒)----->擦除结束。如果用程序监控擦除过程,一旦加密锁定位被擦除就终止擦除操作,停止进一步擦除片内程序存储器,加过密的单片机就变成没加密的单片机了。片内程序可通过总线被读出。对于AT89C系列单片机有两种不可Crack的加密方法。
7 x9 X! E# J7 f; l2 a# R& k0 f一、永久性地破坏单片机的加密位的加密方法。简称OTP加密模式。
5 \' }) C4 P n# B+ f& g二、永久性地破坏单片机的数据总线的加密方法。简称烧总线加密模式
: H, @6 a# {1 @7 E3 L1 L2 c- b9 s8 e1 Y4 c' l7 b) |# e# r! ]
[ 本帖最后由 cylzwx 于 2008-11-10 10:49 编辑 ] |
|