1. 程式人生 > >2018-2019-1 20165309 20165312 20165330 實驗二 韌體程式設計

2018-2019-1 20165309 20165312 20165330 實驗二 韌體程式設計

2018-2019-1 20165309 20165312 20165330 實驗二 韌體程式設計

實驗步驟

1-MDK

  • 參考雲班課資源中“資訊安全系統實驗箱指導書.pdf”第一章,1.1-1.5安裝MDK,JLink驅動,注意,要用系統管理員身份執行uVision4,破解MDK(破解程式中target一定選ARM)
    • File->License Management...->複製CID碼->貼上並選擇“ARM”後再複製產生的LIC->將其貼上回License Management的LIC框中->破解成功
  • 提交破解程式中產生LIC的截圖:

  • 提交破解成功的截圖

  • 注意一定要用管理員身份執行uVision4,不然真的會失敗!!!認真看好老師的任務細節!!

2-LED

  • 參考雲班課資源中“資訊安全系統實驗箱指導書.pdf “第一章,1.4” KEIL-MDK 中新增 Z32 SC-000 晶片庫
    • 提交安裝截圖
  • 參考雲班課資源中“資訊安全系統實驗箱指導書.pdf “第一章,1.9”完成LED實驗,注意“開啟Z32的電源開關前,按住Reboot按鍵不放,兩次開啟電源開關,Z32即可被電腦識別,進行下載除錯。
    • 連線與下載成功
    • 燈閃爍——燈亮
    • 燈閃爍——燈滅

3-UART

  • 參考雲班課資源中“資訊安全系統實驗箱指導書.pdf “第一章,1.4” KEIL-MDK 中新增 Z32 SC-000 晶片庫
    • 提交安裝截圖
  • 參考雲班課資源中“資訊安全系統實驗箱指導書.pdf “第一章,1.0”完成UART傳送與中斷接收實驗,注意“開啟Z32的電源開關前,按住Reboot按鍵不放,兩次開啟電源開關,Z32即可被電腦識別,進行下載除錯。
    • 連線與下載成功
    • 接收與傳送

4-國密演算法

  • SM1對稱密碼
    SM1 演算法是分組密碼演算法,分組長度為128位,金鑰長度都為 128 位元,演算法不公開,僅以IP核的形式存在於晶片中。採用該演算法已經研製了系列晶片、智慧IC卡、智慧密碼鑰匙、加密卡、加密機等安全產品,廣泛應用於電子政務、電子商務及國民經濟的各個應用領域(包括國家政務通、警務通等重要領域)。
    • 對應AES演算法
  • SM2橢圓曲線公鑰密碼演算法
    SM2演算法就是ECC橢圓曲線密碼機制,推薦了一條256位的曲線作為標準曲線。包括SM2-1橢圓曲線數字簽名演算法,SM2-2橢圓曲線金鑰交換協議,SM2-3橢圓曲線公鑰加密演算法,分別用於實現數字簽名金鑰協商和資料加密等功能。
    • 對應ECC演算法
    • 執行截圖
  • SM3雜湊演算法
    SM3密碼雜湊(雜湊、雜湊)演算法適用於商用密碼應用中的數字簽名和驗證,訊息認證碼的生成與驗證以及隨機數的生成,可滿足多種密碼應用的安全需求。
    • 對應MD5演算法
    • 執行截圖
  • SM4對稱演算法
    此演算法採用非線性迭代結構,是一個分組演算法,用於無線區域網產品。該演算法的分組長度為128位元,金鑰長度為128位元。
    • 對應3DES演算法
    • 執行截圖
  • 程式碼來源:關於國密演算法 SM1,SM2,SM3,SM4 的筆記
  • 由於學術不精,直接看這幾個演算法的程式碼我並沒有看懂,下面大致是我找到的相關資料及嘗試理解程式碼的過程:
    • SM2

    • SM3演算法有訊息填充、分塊、迭代壓縮三個步驟:
    • SM4

      1.基本運算:SM4密碼演算法使用模2加和迴圈移位作為基本運算。

    2.基本密碼部件:SM4密碼演算法使用了S盒、非線性變換τ、線性變換部件L、合成變換T基本密碼部件。

    3.輪函式:SM4密碼演算法採用對基本輪函式進行迭代的結構。利用上述基本密碼部件,便可構成輪函式。SM4密碼演算法的輪函式是一種以字為處理單位的密碼函式。

    4.加密演算法:SM4密碼演算法是一個分組演算法。資料分組長度為128位元,金鑰長度為128位元。加密演算法採用32輪迭代結構,每輪使用一個輪金鑰。

    5.解密演算法:SM4密碼演算法是對合運算,因此解密演算法與加密演算法的結構相同,只是輪密鋁的使用順序相反,解密輪金鑰是加密輪金鑰的逆序。

    6.金鑰擴充套件演算法:SM4密碼演算法使用128位的加密金鑰,並採用32輪法代加密結構,每一輪加密使用一個32位的輪金鑰,共使用32個輪金鑰。因此需要使用金鑰擴充套件演算法,從加密金鑰產生出32個輪金鑰。

    7.SM4的安全性:SM4密碼演算法經過我國專業密碼機構的充分分析測試,可以抵抗差分攻擊、線性攻擊等現有攻擊,因此是安全的。

5-SM1

  • 參考雲班課資源中“資訊安全系統實驗箱指導書.pdf “第一章,1.4” KEIL-MDK 中新增 Z32 SC-000 晶片庫
    • 提交安裝截圖
  • 參考雲班課資源中“資訊安全系統實驗箱指導書.pdf “第一章,1.16”完成SM1加密實驗,注意“開啟Z32的電源開關前,按住Reboot按鍵不放,兩次開啟電源開關,Z32即可被電腦識別,進行下載除錯。
    • 連線與下載成功
    • 插入IC卡
    • 加密後使用正確金鑰解密
    • 加密後使用錯誤金鑰解密

實驗中遇到的問題及解決方法

  • 問題:在編譯SM2演算法時遇到“未定義的引用”問題

  • 解決辦法:參考了以往學長學姐的部落格,得知在編譯時新增引數-lssl -lcrypto即能解決:

實驗感受

  • 跟著老師的PDF版《資訊安全系統實驗箱指導書》很容易就能完成實驗,有趣:)
  • 團隊合作的重要性,特別是在進行連線的時候。三個人一起做實驗提高了效率。