晚了兩年啊哈。我個人理解的,不見得對。歡迎拍磚、共勉。
逆向考慮。解密的方法很多,但是簡單點的就是擦除片內的加密鎖定位。而加密鎖定位,在被燒壞以後,就不具備擦除特性了,也就能保證不被讀出了,從而起到加密作用。不能被讀出,自然就更不能被寫入了(這樣就把晶元變成了太監,呵呵)。你燒壞加密鎖定位,它就不能再寫入了,類似於一次性編程,所以叫它OTP加密方法。(OTP就是一次性編程的意思)
通常為了更好的加密程序,如果用戶程序長度大於89C51單片機片內存儲器的容量,也可使用OTP模式做加密。具體做法是:
1 按常規擴展一片大容量程序存儲器,如27C512(64K)。
2 把關鍵的程序部分安排在整個程序的前4K中。
3 把整個程序寫入27C512,再把27C512的前4K填充為0。
4 把程序的前4K固化到AT89C51中,用OTP模式做加密。
5 把單片機的EA腳接高電平。
這樣程序的前4K在單片機內部運行,後60K在片外運行。盜版者無法讀出程序的前4K程序,即使知道後60K也無濟於事。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
當然,加密的方法很多。比如燒斷一根數據匯流排,它也就無法讀出了。(某根匯流排燒壞之後,它就總是顯示輸出1,固然就不能正確讀出代碼了)。
燒匯流排的方法不如燒加密位的方法好。因為燒匯流排以後這個晶元,就不能再使用匯流排介面擴展晶元和存儲器,程序的大小也就只能是受片內程序存儲器的容量限制了。但不論是燒匯流排還是燒加密鎖定位,都將把晶元變成不可再讀出的東東,想再次編程那肯定更是不可能了。所以,要確定無誤後,再加密。
然而,破解方法也是有很多的。並不是非得沿著來路返回去才能回家的。你把鎖定位或者匯流排燒壞了,我都不能讀出了,那不這樣讀了。這就提到了更XX的解密方法。把晶元經過去層處理,把存儲器進行拍照,然後把照片經過染色處理,把1和0區分讀出整理,這樣就得到了存儲器里的代碼(因為代碼是以電荷的碼點形式存在的)。
Ⅱ 請解釋MCU程序存儲器「 FLASH」 , 「OTP」, 「MASK」掩膜 分別代表什麼類型
Flash----快閃記憶體,可重復快速擦除和編程的存儲器.
OTP-----one time programming 一次性可編程存儲器,只能編寫一次.
MASK----一般是出廠時就把程序固化在ROM上的那種存儲器.
以上都是單片機常用的程序存儲器,斷電後程序不會丟失.
Ⅲ 動態口令和otp的差別
區別就是otp就是動態口令,
OTP稱動態口令。OTP 基本原理計算 OTP 串的公式:OTP(K,C) = Truncate(HMAC-SHA-1(K,C))其中,K 表示秘鑰串;C 為隨機數;HMAC-SHA-1 表示使用 SHA-1 做 HMAC;Truncate 表示怎麼截取加密後的串,並取加密後串的哪些欄位組成一個數字。
2.
OTP即One Time Programable,是單片機的一種存首洞儲器類型遲哪。語音IC要將聲音以一定的格式燒錄到IC內,才能發出聲音;一般碼芹碼IC是通過燒寫器和拷貝機即可完成,像OTP一次性燒錄晶元等。
3.
OTP是指一次性可編程語音晶元。根據語音晶元的輸出方式分為兩大類,一種是PWM輸出方式
Ⅳ 51單片機的加密如何使用原理是是什麼
AT89cxx加密原理
單片機解密簡單就是擦除單片機片內的加密鎖定位。由於AT89C系列單片機擦除操作時序設計上的不合理。使在擦除片內程序之前首先擦除加密鎖定位成為可能。AT89C系列單片機擦除操作的時序為:擦除開始---->擦除操作硬體初始化(10微秒)---- >擦除加密鎖定位(50----200微秒)--->擦除片內程序存儲器內的數據(10毫秒)----->擦除結束。如果用程序監控擦除過程,一旦加密鎖定位被擦除就終止擦除操作,停止進一步擦除片內程序存儲器,加過密的單片機就變成沒加密的單片機了。片內程序可通過匯流排被讀出。對於 AT89C系列單片機有兩種不可破解的加密方法。
一、永久性地破壞單片機的加密位的加密方法。簡稱OTP加密模式。
二、永久性地破壞單片機的數據匯流排的加密方法。簡稱燒匯流排加密模式。
一、OTP加密模式原理
這種編程加密演算法燒壞加密鎖定位(把晶元內的矽片擊穿),面不破壞其它部分,不佔用單片機任何資源。加密鎖定位被燒壞後不再具有擦除特性, 89C51/52/55有3個加密位進一步增加了加密的可靠性。一旦用OTP模式加密後,單片機片內的加密位和程序存儲器內的數據就不能被再次擦除, 89C51/52/55單片機就好象變成了一次性編程的OTP型單片機一樣。如果用戶程序長度大於89C51單片機片內存儲器的容量,也可使用OPT模式做加密,具體方法如下:
1、按常規擴展一片大容量程序存儲器,如27C512(64K)。
2、把關鍵的程序部分安排在程序的前4K中。
3、把整個程序寫入27C512,再把27C512的前4K填充為0。
4、把程序的前4K固化到AT89C51中,用OPT模式做加密。
5、把單片機的EA腳接高電平。
這樣程序的前4K在單片機內部運行,後60K在片外運行。盜版者無法讀出程序的前4K程序,即使知道後60K也無濟於事。
二、煉匯流排加密模式原理
因為單片機片內的程序代碼最終都要通過數據匯流排讀出,如果指導單片機的數據匯流排的其中一條線永久性地破壞,解密者即使擦除了加密位,也無法讀出片內的程序的正確代碼。89C1051/2051的數據匯流排為P1口燒匯流排模式燒壞89C2051的P1.0埠,原程序代碼為02H、01H、00H。讀出的數據則為03H,01H,00H。其中最低位始終為1,讀出的程序代碼顯然為錯碼。這種加密模式用於加密89C1051/2051單片機。缺點是佔用單片機的資源。開發設計人員在設計單片機硬體系統時只要預留出口線P1.0不用,以後就可用燒匯流排模式對單片機加密。