2018-2019-1 20165202 20165210 20165214 實驗二 韌體程式設計
阿新 • • 發佈:2018-11-04
2018-2019-1 20165202 20165210 20165214 實驗二 韌體程式設計
一、實驗內容
- 安裝MDK,JLink驅動,執行uVision4,破解MDK
- KEIL-MDK 中新增Z32 SC-000晶片庫,完成LED實驗
- 完成UART傳送與中斷接收實驗
- 理解國密演算法標準SM1,SM2,SM3,SM4並用
gcc
和gcc-arm
編譯 - 完成SM1加密實驗
二、實驗步驟
- 安裝MDK,JLink驅動,執行uVision4,破解MDK
執行
exp2/軟體資料/MDK4.74/.exe
安裝MDK-ARM安裝JLink
破解MDK4.74:複製CID到keil-MDK註冊機中,Target選擇ARM,點選generate生成LIC
將LIC複製到keil4中的LIC輸入框,點選Add LIC,破解完成。
- KEIL-MDK 中新增Z32 SC-000晶片庫,完成LED實驗
執行
exp2\軟體資料\MDK-ARM-SC000\MDK-ARM_AddOn_SC000_Support.exe
安裝SC000庫- 搭建Z32工程基礎程式設計環境:建立
new uVision Project
,選擇完安裝路徑後,彈出晶片庫選擇框,在下拉框中選擇Generic SC000 Device Database
,在彈出框中點開ARM目錄,選擇SC000。 - 開啟
實驗1-LED 閃爍\Z32HUA.uvproj
以開啟LED閃爍實驗專案,編譯專案生成實驗1-LED 閃爍\bin\Z32HUA.bin
- 將實驗箱接入電源,連線實驗箱與電腦,開啟Z32下載除錯工具
軟體資料\Z32下載除錯工具\NZDownloadTool.exe
開啟Z32的電源開關前,按住Reboot按鍵不放,兩次開啟電源開關,Z32即可被電腦識別,顯示1裝置已連線後,點選瀏覽,選擇\實驗 1-LED 閃爍\bin\Z32HUA.bin
,點選下載,綠色進度條載入完成後,程式下載成功 關閉Z32電源,再開啟,下載完的程式自動執行,可以看到核心板上LED燈閃爍。
- 完成UART傳送與中斷接收實驗
- 開啟
實驗 2-UART 傳送與中斷 接收\Z32HUA.uvproj
以開啟UART 傳送與中斷 接收實驗專案,編譯專案生成實驗 2-UART 傳送與中斷接收\bin\Z32HUA.bin
- 將實驗箱接入電源,連線實驗箱與電腦,用 9 針串列埠線將 Z32 模組的串列埠與電腦 USB 介面連線,開啟Z32下載除錯工具
軟體資料\Z32下載除錯工具\NZDownloadTool.exe
開啟Z32的電源開關前,按住Reboot按鍵不放,兩次開啟電源開關,Z32即可被電腦識別,顯示1裝置已連線後,點選瀏覽,選擇\實驗 2-UART 傳送與中斷接收\bin\Z32HUA.bin
,點選下載,綠色進度條載入完成後,程式下載成功 - 開啟串列埠助手,設定相應引數。
- 關閉Z32電源,再開啟,下載完的程式自動執行,在串列埠除錯助手的字串輸入框輸入字串“abcdefgh”,然後點擊發
送按鈕。
- 開啟
理解國密演算法標準SM1,SM2,SM3,SM4並用
gcc
和gcc-arm
編譯
- 完成SM1加密實驗
- 開啟
實驗 8-SM1\Z32HUA.uvproj
以開啟UART 傳送與中斷 接收實驗專案,編譯專案生成實驗 8-SM1\bin\Z32HUA.bin
- 將實驗箱接入電源,連線實驗箱與電腦,用 9 針串列埠線將 Z32 模組的串列埠與電腦 USB 介面連線,開啟Z32下載除錯工具
軟體資料\Z32下載除錯工具\NZDownloadTool.exe
開啟Z32的電源開關前,按住Reboot按鍵不放,兩次開啟電源開關,Z32即可被電腦識別,顯示1裝置已連線後,點選瀏覽,選擇\實驗 8-SM1\bin\Z32HUA.bin
,點選下載,綠色進度條載入完成後,程式下載成功 - 開啟串列埠助手,設定相應引數。
- 關閉Z32電源,再開啟,下載完的程式自動執行,顯示屏顯示“SLE4428 實驗!請插入 IC 卡.”。插入IC卡後:使用者程式碼為:”,第四行顯示使用者程式碼“D27600000400”。再按下矩陣鍵盤的“A”鍵,螢幕 第一行顯示提示“按-A 鍵校驗密碼”並在第二行顯示兩個位元組的校驗密碼 “校驗 0xFF,0xFF”。按下矩陣鍵盤的“A”鍵,螢幕第三行顯示“校驗成功”,第四行顯示校驗 剩餘機會“剩餘機會:8 次”。
- 按下矩陣鍵盤的“A”鍵,則螢幕第一行顯示“加密解密實驗”,第二、三行分別顯示選項“1.加密”,“2.解密”。按“1”鍵選擇加密,螢幕第一行顯示“觀看串列埠除錯 助手”,第二行顯示“A 鍵確認加密”。此時,串列埠除錯助手顯示原始資料和 加密金鑰。按下“A”鍵確認加密後,螢幕第三行顯示“加密完成”,第四行顯示提示 “A 鍵存入 IC 卡”。串列埠除錯助手顯示加密後的資料。按“A”鍵,將加密資料存入 IC 卡,此時串列埠顯示“已將資料寫入 IC 卡”。 螢幕回到加密解密實驗選擇選單。
- 下面進行解密實驗。按“2”鍵選擇解密實驗後螢幕顯示“觀看串列埠除錯助 手 A鍵讀取IC卡資料”。按“A”鍵後,此時螢幕顯示“讀取成功 選擇金鑰解密:1.正確金鑰 2.錯 誤金鑰”。串列埠顯示“讀取的資料:為:0x7E 0xDC 0xA3 0x7B 0xBA 0x53 0x84 0xAC 0x0B 0x75 0x50 0x45 0x2E 0xEC 0x4F 0x4F”。按“1”鍵選擇正確的金鑰後,螢幕提示“A 鍵確認解密”,此時串列埠顯示“將 使用以下金鑰進行解密:0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F”。按“A” 鍵確認解密後,螢幕提示“解密完成 A 鍵返回”,此時串列埠顯示 “解密後的資料為:0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F”。按“A”鍵返回加/解密選擇選單。
- 使用錯誤金鑰解密:選單中按“2”進行解密實驗,用錯誤的祕鑰解密。按“A”鍵後,此時螢幕顯示“讀取成功 選擇金鑰解密:1.正確金鑰 2.錯 誤金鑰”。串列埠顯示“讀取的資料:為:0x7E 0xDC 0xA3 0x7B 0xBA 0x53 0x84 0xAC 0x0B 0x75 0x50 0x45 0x2E 0xEC 0x4F 0x4F”。按“2”鍵選擇錯誤的金鑰後,螢幕提示“A 鍵確認解密”,此時串列埠顯示“將 使用以下金鑰進行解密:0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00”。按“A” 鍵確認解密後,螢幕提示“解密完成 A 鍵返回”,此時串列埠顯示 “解密後的資料為:0xB9 0x8C 0xB6 0x40 0xA2 0xD2 0x83 0xD0 0x64 0x6E 0x54 0x26 0x86 0x6D 0x5A 0xF5”。而正確的原始資料為:“0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F”,所 以解密失敗。
- 開啟
三、實驗過程中遇到的問題和解決方案
- 問題1:很多時候電腦無法識別Z32,按照指示說明嘗試n次無果
- 問題1解決方案:最後選擇了。。重啟電腦,然後之後都能成功識別了。QAQ
四、實驗體會與總結
本次實驗學習了新的知識點和命令
- 關於國密演算法標準SM1,SM2,SM3,SM4
- 國產密碼演算法(國密演算法)是指國家密碼局認定的國產商用密碼演算法,在金融領域目前主要使用公開的SM2、SM3、SM4三類演算法,分別是非對稱演算法、雜湊演算法和對稱演算法。金鑰長度和分組長度均為128位。
- SM1 為對稱加密。其加密強度與AES相當。該演算法不公開,呼叫該演算法時,需要通過加密晶片的介面進行呼叫。
- SM2為非對稱加密,基於ECC(橢圓曲線加解密)。該演算法已公開。SM2橢圓曲線公鑰密碼演算法是我國自主設計的公鑰密碼演算法,包括SM2-1橢圓曲線數字簽名演算法,SM2-2橢圓曲線金鑰交換協議,SM2-3橢圓曲線公鑰加密演算法,分別用於實現數字簽名金鑰協商和資料加密等功能。SM2演算法與RSA演算法不同的是,SM2演算法是基於橢圓曲線上點群離散對數難題,相對於RSA演算法,256位的SM2密碼強度已經比2048位的RSA密碼強度要高。
- SM3 訊息摘要。可以用MD5作為對比理解。該演算法已公開。校驗結果為256位。SM3雜湊演算法是我國自主設計的密碼雜湊演算法,適用於商用密碼應用中的數字簽名和驗證訊息認證碼的生成與驗證以及隨機數的生成,可滿足多種密碼應用的安全需求。為了保證雜湊演算法的安全性,其產生的雜湊值的長度不應太短,例如MD5輸出128位元雜湊值,輸出長度太短,影響其安全性SHA-1演算法的輸出長度為160位元,SM3演算法的輸出長度為256位元,因此SM3演算法的安全性要高於MD5演算法和SHA-1演算法。
- SM4 無線區域網標準的分組資料演算法。對稱加密,金鑰長度和分組長度均為128位。SM4分組密碼演算法是我國自主設計的分組對稱密碼演算法,用於實現資料的加密/解密運算,以保證資料和資訊的機密性。要保證一個對稱密碼演算法的安全性的基本條件是其具備足夠的金鑰長度,SM4演算法與AES演算法具有相同的金鑰長度分組長度128位元,因此在安全性上高於3DES演算法。