2019-2020信息安全系統設計基礎 20175306 20175309 20175326 實驗二 固件程序設計

2019-2020-1 20175306 20175309 20175326 實驗二 固件程序設計

實驗步驟

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便可被電腦識別,進行下載調試。提交運行結果截圖

- 代碼分析

主函數:加密

-SystemInit ()
系統初始化;.net

  • if(0 == GPIO_GetVal(0))
    {
    BtApiBack(0x55555555, 0xAAAAAAAA);
    }
    判斷按鍵,返回 boot 條件,確認是否進行程序下載;設計

  • GPIO_PuPdSel(0,0);
    GPIO_InOutSet(0,0);
    設置 GPIO0 狀態爲上拉輸出;3d

  • while(1)
    {
    delay(100);
    GPIO_SetVal(0,0); //輸出低電平,點亮 LED
    delay(100);
    GPIO_SetVal(0,1); //輸出高電平,熄滅 LED
    }
    進入循環程序, LED 燈間隔 100ms 閃爍。調試

    3-UART

  • 參考雲班課資源中「信息安全系統實驗箱指導書.pdf 「第一章,1.4」 KEIL-MDK 中添加 Z32 SC-000 芯片庫,提交安裝截圖
    blog

  • 參考雲班課資源中「信息安全系統實驗箱指導書.pdf 「第一章,1.0」完成UART發送與中斷接收實驗,注意「打開Z32的電源開關前,按住Reboot按鍵不放,兩次打開電源開關,Z32便可被電腦識別,進行下載調試。提交運行結果截圖

- 代碼分析

  • void UART_Irq Service(void) 是進行串口中斷服務;

  • void UART_BrpSet(UINT16 set)是進行波特率設置;

  • void UART_Init(void) 是進行串口初始化;

  • void UART_SendByte(UINT8 dat) 是用於發送單字節;

  • void UART_SendString(UINT8 * str) 是用於發送字符串;

  • void uart_SendString(UINT8 buf[],length) 是用於發送某一長度的字符串;

  • void UART_SendNum(INT32 num) 是用於發送單個十進制整數;

  • void UART_SendHex(UINT8 dat) 是用於發送單個十六進制整數;

  • UINT8 UART_GetByte(*data) 是用於接收單字節;

  • void UART_Receive(UINT8 *receive, len) 是用於接收多字節;

    4-國密算法

  • SM3雜湊算法:

SM3密碼雜湊(哈希、散列)算法適用於商用密碼應用中的數字簽名和驗證,消息認證碼的生成與驗證以及隨機數的生成,可知足多種密碼應用的安全需求。
對應MD5算法
運行截圖

  • SM4對稱算法:

此算法採用非線性迭代結構,是一個分組算法,用於無線局域網產品。該算法的分組長度爲128比特,密鑰長度爲128比特。
對應3DES算法
運行截圖

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便可被電腦識別,進行下載調試。提交運行結果截圖
  • 鏈接與下載成功

  • 剩下的步驟將用圖片一張一張演示

按照提示插入SLE4428 IC卡;

按A鍵進行校驗,校驗成功後選擇加密和解密;

按1選擇加密,再按A確認加密,在串口助手上能夠看到觀察明文、祕鑰和密文;

再按A鍵,將加密數據存入IC卡中;

按2選擇解密,選擇正確祕鑰後,再按A鍵確認解密,串口助手上能夠看到解密後的信息;

再按A鍵返回菜單。

- 代碼分析

主函數:

  • 系統初始化;
  • 判斷按鍵,返回 boot 條件;
  • 初始化IC卡插入檢測IO口GPIO6;
    B:

  • 按下A鍵,顯示屏第一行「加密解試驗」,第2、三行分別示「 1. 加密」「 2. 解密」兩個選項。
    加密:

  • SM1初始化;
  • 進行SM1加密;
  • 關閉SM1加密安全模塊;
    解密:

  • SM1初始化;
  • 進行SM1解密;
  • 關閉SM1加密安全模塊;

    實驗體會:因爲本次實驗是第二次實驗,因此小組成員更有默契,配合起來也駕輕就熟,在作實驗的過程當中也分工明確,可讓咱們更快更好的完成實驗。可是仍是遇到了一些問題,首先就是試驗箱等硬件問題,都經過更換和調試解決。其次就是在使用軟件進行編譯實驗等問題,注意在使用軟件時要用管理員身份運行。最後經過咱們共同的努力順利完成本次實驗!!!

相關文章
相關標籤/搜索