stm32如何加密
A. 如何設置stm32的id
1,如果板子上有外部存儲器,可以先編寫一個程序,利用演算法把id計算得到一些值存入外部存儲器,然後再燒寫真正的程序,真正的程序去校驗外部存儲器的數據是否合法即可 2,利用板子上按鍵組合,或是上電按住某些鍵,程序在這個時候利用演算法把id計算得到一些值存入程序區(stm8為EE區),程序運行時去驗證程序區數據是否正確 3,軒微編程器有軟體加密的功能,編程器會讀晶元id,根據演算法直接改寫緩沖區,達到軟體加密的作用 4,讀出的id通過一定演算法,例如異或加上一個數,得到的數據存入flash(只運行一次,運行後標志位也存入flash),下次讀到這個標志位,就不運行這個程序。
四、做軟體加密時注意 1,不要在程序中直接出現id地址,例如STM32:1FFFF7E8 1FFFF7EC 1FFFF7F0 STM8: 0x4865~0x4870 2, 利用校驗和或是crc對程序區進行校驗,防止改程序
B. 對STM32F107編程時,使用什麼方法能防止被別人反匯編,用什麼方法能夠加密謝謝
1,如果板子上有外部存儲器,可以先編寫一個程序,利用演算法把id計算得到一些值存入外部存儲器,然後再燒寫真正的程序,真正的程序去校驗外部存儲器的數據是否合法即可
2,利用板子上按鍵組合,或是上電按住某些鍵,程序在這個時候利用演算法把id計算得到一些值存入程序區(stm8為EE區),程序運行時去驗證程序區數據是否正確
3,軒微編程器有軟體加密的功能,編程器會讀晶元id,根據演算法直接改寫緩沖區,達到軟體加密的作用
4,讀出的id通過一定演算法,例如異或加上一個數,得到的數據存入flash(只運行一次,運行後標志位也存入flash),下次讀到這個標志位,就不運行這個程序。
四、做軟體加密時注意
1,不要在程序中直接出現id地址,例如STM32:1FFFF7E8 1FFFF7EC 1FFFF7F0 STM8: 0x4865~0x4870
2, 利用校驗和或是crc對程序區進行校驗,防止改程序
C. STM32F103系列的怎麼加密
目前來說晶元的解密有以下幾個方面:翻版別人的電路,解密晶元就拿到了人家做的程序,就可以做一個跟別人一樣的電子產品了。獲取一些機密的演算法,目的跟1也差不多,就是更加高級的翻版。解密被人的銀行卡晶元,獲取別人銀行卡的信息,這個你懂的。解密晶元獲取更高的用戶許可權,從而做一些你懂的事情。當然有些人也為了證明自己的水平和好玩,所以解密晶元。
D. stm32 的 aes加密功能怎麼用,怎麼使用庫函數實現
其中stm32l0xx_hal_cryp_ex.c需要自己從常式或者HAL驅動裡面拷出來,
並不能由cubeMX生成與配置
E. stm32的flash有幾種加密方法
1,如果板子上有外部存儲器,可以先編寫一個程序,利用演算法把id計算得到一些值存入外部存儲器,然後再燒寫真正的程序,真正的程序去校驗外部存儲器的數據是否合法即可
2,利用板子上按鍵組合,或是上電按住某些鍵,程序在這個時候利用演算法把id計算得到一些值存入程序區(stm8為EE區),程序運行時去驗證程序區數據是否正確
3,軒微編程器有軟體加密的功能,編程器會讀晶元id,根據演算法直接改寫緩沖區,達到軟體加密的作用
4,讀出的id通過一定演算法,例如異或加上一個數,得到的數據存入flash(只運行一次,運行後標志位也存入flash),下次讀到這個標志位,就不運行這個程序。
四、做軟體加密時注意
1,不要在程序中直接出現id地址,例如STM32:1FFFF7E8 1FFFF7EC 1FFFF7F0 STM8: 0x4865~0x4870
2, 利用校驗和或是crc對程序區進行校驗,防止改程序
F. STM32全系列的加密庫如何使用方法
首先你要安裝MDK5才能使用F4。 之後按照這個教程從頭來即可
G. jflash燒寫stm32可以燒寫加密一次完成嗎
jflash燒寫stm32可以燒寫加密一次完成。
1、 打開J_Flash ARM出現如下工作界面。
2、選擇Options—Project settings進入Project settings界面。
3、點擊CPU,選擇合適的型號:此時,我們在device裡面選擇好我們目標板上的晶元就可以了,然後點擊確認。
4、我們現在將JLINK和目標板進行連接:Target ——connect沒有跳出錯誤,說明連接成功。
特點:
內核:ARM32位Cortex-M3 CPU,最高工作頻率72MHz,1.25DMIPS/MHz。單周期乘法和硬體除法。
存儲器:片上集成32-512KB的Flash存儲器。6-64KB的SRAM存儲器。
時鍾、復位和電源管理:2.0-3.6V的電源供電和I/O介面的驅動電壓。上電復位(POR)、掉電復位(PDR)和可編程的電壓探測器(PVD)。4-16MHz的晶振。內嵌出廠前調校的8MHzRC振盪電路。內部40 kHz的RC振盪電路。用於CPU時鍾的PLL。帶校準用於RTC的32kHz的晶振。
低功耗:3種低功耗模式:休眠,停止,待機模式。為RTC和備份寄存器供電的VBAT。
H. 如何用 stm32的單片機 id做加密
由於ID號是不可修改的,你可以先讀出來,然後進行一個演算法,把演算法產生的數據存到FLASH裡面,然後每次程序開始時候把演算法數據讀出來,把ID號進行運算,看看是否匹配,不能匹配,程序停止,否則程序程序正常運行;
I. stm32加密怎麼設置
if(FLASH_GetReadOutProtectionStatus() != SET)
{
FLASH_Unlock();
FLASH_ReadOutProtection(ENABLE);
FLASH_Lock();
}
J. STM32的加密庫在哪兒
關於STM32加密
摘要:
知識產權的保護,如何讓自已辛勤的勞動成果不被別人抄襲,採用有效的手段對IC加密是值得每一個設計者關注的問題。
當然,有人說,沒有解不了密的IC,的確,解密是一項技術,只要有人類在不斷的研究,它就有破解的一天;但是加密後的IC會增加破解的難度與破解成本,當破解的成本大於收益時,自然就會使破解者望而卻步。
STM32晶元這兩年銷量很好,它的性能和價格都很不錯,但如何對STM32進行加密呢,本人結合自已使用STM32 MCU一年多的經驗,總結一下我對它加密的理解與方法。
關鍵字: STM32 加密 讀保護
加密,最基本的方法是置讀保護,這樣可以防止外部工具非法訪問,在STM32官網發布的 串口ISP軟體中有置讀保護和加密選項,選擇一個就可以了,這樣外部工具就無法對FLASH進行讀寫操作,但我要重新燒寫FLASH怎麼辦?只能清讀保護,而清讀保護後,晶元內部會自動擦除FLASH全部內容。
還有人說,置讀保護還不夠安全,說要採用晶元內的唯一ID來加密,在程序里識別晶元的ID,如果ID不對,則程序不運行,當然,這樣安全性又要更高一些,但每個晶元的ID不一樣,因此對應的程序也應該不一樣,那如何處理呢?有網友說:采購的時候,產品同批生產的ID號應該是連續的,可以通過判別ID的范圍;還有網友說,在燒錄工具里做一個演算法,讀取晶元ID,再修改相應的二進制文件。當然還會有很多種方法,這里不展開討論。
以上介紹的只是一種情況,在實際的應用中還會發生第二種情況。
我們知道,STM32的內部FLASH是用戶可編程的,也就是說它支持IAP,而IAP中的APP代碼一般是需要開放的,那麼只有保證BOOT的代碼安全,才能確保不被破解。
前面提到,當IC置讀保護後,外部工具不能訪問內部FLASH,但CPU可以訪問,破解者完全可以自已編寫一段代碼通過BOOT下載到IC 運行,然後在程序中讀出你的BOOT代碼。
只能加以限制,使別人的代碼運行不了,才能保證BOOT不被讀出。
常用的方法是採用加密演算法,如AES;流程如下:
APP代碼加密,下載時,在BOOT中解密,這樣,只有通過正確加密的APP代碼才能正常的運行,因此加密的演算法就成了你的密鑰,而這個是你獨有的。
參考資料:《STM32F1x Flash Programming.pdf》作者:STMicroelectronics