查看: 14016|回復: 11
打印 上一主題 下一主題

菜農友情為STM32設計一種通用加密方法之原理

[復制鏈接]
跳轉到指定樓層
樓主
發(fā)表于 2010-8-20 02:29:34 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
關(guān)鍵詞: 菜農 , 設計 , 友情 , 原理
今天連續看了兩篇關(guān)于加密方面的帖子,感覺(jué)自己應該友情奉獻一回了~~~

設想一種加密辦法,大家看看可行嗎?
關(guān)于STM32F器件電子簽名以及加密問(wèn)題-請指點(diǎn)

今日方知STM32的UID為96位即12個(gè)字節,以前知道STM32內嵌CRC32.
網(wǎng)上在線(xiàn)CRC演算工具http://www.hotpower.org/HotAjax/HotPower_HotAjax.html




HotAjax(曾用名HotWC3)早已支持STM32的CRC32,點(diǎn)擊crc32_stm32可選擇之。
其權值=0x04C11DB7,初值=0xFFFFFFFF,出值=0x00000000

1.STM32F器件電子簽名 發(fā)現沒(méi)有規則 不是我們想像的 96位 從0 一直加到96位的
那么這個(gè)STM32F器件電子簽名 不規則我覺(jué)得是不可能的,一個(gè)批次應該有規則的。
還請懂ST的指點(diǎn)。
2.有規則就沒(méi)第二個(gè)問(wèn)題了,沒(méi)規則 如何加密呢? 比如我只想要某些ID能用這套程序;蚴瞧渌用芩惴,如何應用?

道理很簡(jiǎn)單,它一定是ST內部連續的序列碼(肯定小于96位)經(jīng)過(guò)一定校驗算法得到(固定)96位的不連續的唯一ID.此ID通過(guò)逆運算可證實(shí)為ST合法產(chǎn)品。
這個(gè)校驗算法肯定不是單向散列函數,這和數字簽名有很大區別。

本友情算法是利用96位ID和CRC32對芯片加密,這就要求有相應的ISP軟件的支持或每個(gè)ID對應一個(gè)HEX文件。

1.利用96位ID和輔助ID 32位共128位經(jīng)過(guò)CRC32運算后得到校驗和為32位數0。
2.將此0“滿(mǎn)世界”的相異或、或、加、減等不變的運算實(shí)現“無(wú)縫隙加密”。

要實(shí)現這兩個(gè)基本原理,首先STM32應該具備IAP函數能夠在ISP和IAP過(guò)程中都能讀出此唯一ID.(這個(gè)需要香主解釋?zhuān)?br /> ISP軟件在讀出ID后再向某4個(gè)字節即32位寫(xiě)入輔助ID,程序運行后即可實(shí)現2個(gè)基本原理。

例如UID=0x0123456789ABCDEF12345678
經(jīng)過(guò)CRC32運算后,得到校驗和=0x30F4B6E6
將此校驗和作為輔助ID寫(xiě)入HEX文件的某個(gè)位置(每個(gè)Hex文件的不同處,即4個(gè)字節不同,若想更深層次的可多層次CRC即多組輔助ID)。


運行時(shí)將動(dòng)態(tài)讀入的UID()函數+輔助ID共128位進(jìn)行CRC32的運算,結果必為0
即CRC32(0x0123456789ABCDEF1234567830F4B6E6)=0x00000000



假使UID和輔助ID不配對,即非法拷貝,那么CRC32的結果幾乎不可能為0(CRC32有碰撞的威脅)

試想用一個(gè)非零的數到處異或等運算將會(huì )發(fā)生什么???天才知道其后果。
假若將其對GPIO的輸出異或會(huì )發(fā)生些什么???切記加密絕不能用分支比較判斷,應該用其運算結果到處亂搞。
而多層次的CRC加密就是要防止解密者惡意修改源程序中的關(guān)鍵CRC運算,防止將其結果強行設置為0。

這就是菜農友情奉獻的加密原理。

同理可進(jìn)行多層次的加密,試想有26層的CRC32運算的嵌套又會(huì )發(fā)生些什么???
這是俺92年成功破解美國福祿克加密狗后為美國人留下的感慨~~~

如果你能讓反匯編止步在這26層CRC32嵌套之間,那麼他就別想把此UID對應的HEX克隆到其他機子上玩~~~

菜農通訊工具:

新浪網(wǎng)頁(yè)版:http://t.sina.com.cn/hotpower
新浪手機版:http://t.sina.cn/hotpower

網(wǎng) 易微 博:http://t.163.com/hotpower
騰訊QQ:    1270688699

菜農郵箱:     HotPower@163.com
菜農導航: http://www.hotpage.net.cn/


沙發(fā)
發(fā)表于 2010-8-20 09:29:07 | 只看該作者
好文。
板凳
發(fā)表于 2010-8-20 10:33:33 | 只看該作者
mark
地板
發(fā)表于 2010-8-20 14:37:52 | 只看該作者
看不懂,但友情支持一把,呵呵   
地下室
發(fā)表于 2010-8-20 19:42:02 | 只看該作者
這種方法我以前想過(guò),不過(guò)要先有程序把UID讀出來(lái),然后再根據算法把得到輔助ID,再把他寫(xiě)進(jìn)去。
有兩種方法可以實(shí)現:
1。寫(xiě)兩遍hex,第一遍寫(xiě)計算出輔助ID的hex,讓他運行后把輔助ID寫(xiě)進(jìn)去,第2遍寫(xiě)真正的應用程序寫(xiě)進(jìn)去,應用程序上電或運行過(guò)程中校驗UID和輔助ID是否匹配。
2。自己開(kāi)發(fā)程序下載軟件,在下程序之前讀出芯片的UID,計算得到輔助ID,然后把輔助ID和應用程序寫(xiě)進(jìn)去?墒侨绻恢佬酒南螺d協(xié)議,就很難搞了,比如STC芯片的。
6
 樓主| 發(fā)表于 2010-8-20 22:09:43 | 只看該作者
和香水城斑竹及網(wǎng)友的討論見(jiàn):http://bbs.21ic.com/icview-190954-1-1.html
7
發(fā)表于 2010-8-24 18:34:14 | 只看該作者
xiexie分享!
8
 樓主| 發(fā)表于 2010-8-24 20:04:15 | 只看該作者
stc的isp很好破解,網(wǎng)上下載個(gè)串口攔截軟件即可。
俺不玩stc這種垃圾芯片了,所以俺不破解它。
9
發(fā)表于 2010-8-24 20:44:28 | 只看該作者
謝謝樓主。!好文。
10
發(fā)表于 2010-8-24 20:44:55 | 只看該作者
謝謝樓主。!好文。
11
發(fā)表于 2010-8-24 21:46:41 | 只看該作者
謝謝分享。
12
發(fā)表于 2010-9-4 09:17:03 | 只看該作者
mark
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页