2018-2019-1 20165234 20165236 實驗二 固件程序設計

實驗二  固件程序設計

小組成員

20165234 劉津甫

20165236 郭金濤

任務一 MDK

實驗要求

  • 注意不經老師容許不許燒寫本身修改的代碼
  • 兩人(個別三人)一組
  • 參考雲班課資源中「信息安全系統實驗箱指導書.pdf 「第一章,1.1-1.5安裝MDK,JLink驅動,注意,要用系統管理員身分運行uVision4,破解MDK(破解程序中target必定選ARM)
  • 提交破解程序中產生LIC的截圖
  • 提交破解成功的截圖

實驗步驟

  • 將"mdk474.exe"文件安裝在本身建立的名爲「Keil 4」的文件夾中
  • 在同一文件夾下安裝ULINK 
  • 右鍵點擊桌面上建立的快捷方式「Keil uVision4」,選擇「以管理員身份運行」
  • 點擊File->License Management…,在彈出的窗口中複製CID
  • 再運行 keil-MDK 註冊機,粘貼 CID 並選擇 ARM,而後點擊 generate 生成 LIC

  • 將註冊機生成的 LIC 複製到 keil4中的 LIC 輸入框中,點擊 Add LIC,破解完成

任務二

實驗要求

  • 注意不經老師容許不許燒寫本身修改的代碼
  • 參考雲班課資源中「信息安全系統實驗箱指導書.pdf 「第一章,1.4」 KEIL-MDK 中添加 Z32 SC-000 芯片庫,提交安裝截圖
  • 參考雲班課資源中「信息安全系統實驗箱指導書.pdf 「第一章,1.9」完成LED實驗,注意「打開Z32的電源開關前,按住Reboot按鍵不放,兩次打開電源開關,Z32便可被電腦識別,進行下載調試。提交運行結果截圖。
  • 實驗報告中分析代碼

實驗步驟

  • 在"Keil 4"文件夾下安裝 MDK-ARM_AddOn_SC000_Support.exe 文件
  • 以管理員身份運行「Keil uVision4」後,選擇 Project——>New uVision Project新建工程
  • 在芯片庫選擇框選擇Generic SC000 Device Database ,點擊Ok

  • 點開 ARM 結構目錄,選擇 SC000,點擊 OK,安裝完成

  • 打開「Z32 開發指南\實驗 1-LED 閃爍」目錄的工程文件,編譯主函數產生後綴名爲.bin 的可執行代碼
  • 用USB線鏈接電腦和試驗箱,打開NZDloadTool.exe
  • 按住Reboot按鈕的同時兩次開關試驗箱左上角部分的電源開關,Z32被識別,Download tool界面左側顯示已鏈接設備,而後瀏覽以前編譯生成的.bin文件,點擊下載

  • 對實驗箱從新給電,便可觀察到L2燈開始閃爍

代碼分析

int main(void)
{
    SystemInit (); //系統中斷向量設置,使能全部中斷
    
    if(0 == GPIO_GetVal(0))
    {
        BtApiBack(0x55555555, 0xAAAAAAAA);
    }
    //判斷按鍵,返回 boot 條件,確認是否進行程序下載;
    GPIO_PuPdSel(0,0);  //設置GPIO0爲上拉
    GPIO_InOutSet(0,0); //設置GPIO0爲輸出
    while(1)
    {
        delay(100);
        GPIO_SetVal(0,0);  //輸出低電平,點亮LED
        delay(100);
        GPIO_SetVal(0,1);  //輸出高電平,熄滅LED    
    }
    //進入循環程序, LED 燈間隔 100ms 閃爍。
}

任務三

實驗要求

  • 注意不經老師容許不許燒寫本身修改的代碼
  • 參考雲班課資源中「信息安全系統實驗箱指導書.pdf 「第一章,1.4」 KEIL-MDK 中添加 Z32 SC-000 芯片庫,提交安裝截圖
  • 參考雲班課資源中「信息安全系統實驗箱指導書.pdf 「第一章,1.0」完成UART發送與中斷接收實驗,注意「打開Z32的電源開關前,按住Reboot按鍵不放,兩次打開電源開關,Z32便可被電腦識別,進行下載調試。提交運行結果截圖
  • 實驗報告中分析代碼

實驗步驟

  • 打開「UART發送與中斷接收」目錄下的Z32HUA.uvproj工程文件並編譯,將生成的.bin文件下載到實驗箱

  • 除了用USB公線鏈接電腦和實驗箱外,還須要用9針串口線將 Z32 模塊的串口與電腦USB接口鏈接
  • 在電腦上打開串口助手,選擇對應的串口號,設置波特率爲115200, 偶校驗(Even),選中「發送新行」,而後打開串口
  • 對Z32從新給電,程序自動運行,能夠在串口調試助手中看到PC機 串口接收到 Z32 串口發送來的信息

任務四

實驗要求

  • 網上搜集國密算法標準SM1,SM2,SM3,SM4
  • 網上找一下相應的代碼和標準測試代碼,在Ubuntu中分別用gcc和gcc-arm編譯
  • 四個算法的用途?
  • 《密碼學》課程中分別有哪些對應的算法?
  • 提交2,3兩個問題的答案
  • 提交在Ubuntu中運行國密算法測試程序的截圖

國密即國家密碼局認定的國產密碼算法。算法

主要有SM1,SM2,SM3,SM4。密鑰長度和分組長度均爲128位。安全

SM1 爲對稱加密。其加密強度與AES至關。該算法不公開,調用該算法時,須要經過加密芯片的接口進行調用。函數

SM2爲非對稱加密,基於ECC。該算法已公開。因爲該算法基於ECC,故其簽名速度與祕鑰生成速度都快於RSA。ECC 256位(SM2採用的就是ECC 256位的一種)安全強度比RSA 2048位高,但運算速度快於RSA。測試

SM3 消息摘要。能夠用MD5做爲對比理解。該算法已公開。校驗結果爲256位。加密

SM4 無線局域網標準的分組數據算法。對稱加密,密鑰長度和分組長度均爲128位。spa

與密碼學相對應的算法

國密算法 對應密碼學算法
SM1 AES算法(高級加密標準)
SM2 ECC (橢圓加密算法)
SM3 MD5 (信息摘要算法)
SM4 DES(數據加密標準)

image

任務五

實驗要求

  • 注意不經老師容許不許燒寫本身修改的代碼
  • 參考雲班課資源中「信息安全系統實驗箱指導書.pdf 「第一章,1.4」 KEIL-MDK 中添加 Z32 SC-000 芯片庫,提交安裝截圖
  • 參考雲班課資源中「信息安全系統實驗箱指導書.pdf 「第一章,1.16」完成SM1加密實驗,注意「打開Z32的電源開關前,按住Reboot按鍵不放,兩次打開電源開關,Z32便可被電腦識別,進行下載調試。提交運行結果截圖
  • 實驗報告中分析代碼

實驗步驟

  • 打開「exp2\SM1」目錄下的Z32HUA.uvproj工程文件並編譯,將生成的.bin文件下載到實驗箱
  • 用9針串口線將電腦與Z32部分鏈接
  • 打開sscom42.exe串口助手,完成相關設定後關閉再打開實驗箱Z32部分的電源開關
  • 按照電子屏的提示插入IC卡。
  • 插入正確的卡後顯示相應信息,而後按A校驗密碼
  • 按照步驟進行進一步的加解

遇到的問題與解決方案

一、沒法接受串口信息

解決方案:發現沒有接usb的數據線,接上後再從新操做開關兩次後成功自動顯示串口信息設計

二、沒法接受字符串

解決方案:屢次從新操做後成功3d

實驗感悟

雖然實驗內容比較複雜,但經過參考實驗指導的PDF,按照步驟一步步細心地作,使得實驗整體仍是較爲成功的。調試

此外,提早作好實驗預習,看清實驗要求,能夠爲咱們節約不少時間,並提高實驗的效率。code

相關文章
相關標籤/搜索