提交破解程序中產生LIC的截圖:
算法
提交破解成功的截圖
安全
注意必定要用管理員身份運行uVision4,否則真的會失敗!!!認真看好老師的任務細節!!函數
參考雲班課資源中「信息安全系統實驗箱指導書.pdf 「第一章,1.4」 KEIL-MDK 中添加 Z32 SC-000 芯片庫,提交安裝截圖
測試
主函數:加密
-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 閃爍。調試
參考雲班課資源中「信息安全系統實驗箱指導書.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) 是用於接收多字節;
SM3雜湊算法:
SM3密碼雜湊(哈希、散列)算法適用於商用密碼應用中的數字簽名和驗證,消息認證碼的生成與驗證以及隨機數的生成,可知足多種密碼應用的安全需求。
對應MD5算法
運行截圖
此算法採用非線性迭代結構,是一個分組算法,用於無線局域網產品。該算法的分組長度爲128比特,密鑰長度爲128比特。
對應3DES算法
運行截圖
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密碼算法通過我國專業密碼機構的充分分析測試,能夠抵抗差分攻擊、線性攻擊等現有攻擊,所以是安全的。
參考雲班課資源中「信息安全系統實驗箱指導書.pdf 「第一章,1.4」 KEIL-MDK 中添加 Z32 SC-000 芯片庫,提交安裝截圖
鏈接與下載成功
剩下的步驟將用圖片一張一張演示
按照提示插入SLE4428 IC卡;
按A鍵進行校驗,校驗成功後選擇加密和解密;
按1選擇加密,再按A確認加密,在串口助手上能夠看到觀察明文、祕鑰和密文;
再按A鍵,將加密數據存入IC卡中;
按2選擇解密,選擇正確祕鑰後,再按A鍵確認解密,串口助手上能夠看到解密後的信息;
再按A鍵返回菜單。
主函數:
初始化IC卡插入檢測IO口GPIO6;
B:
按下A鍵,顯示屏第一行「加密解試驗」,第2、三行分別示「 1. 加密」「 2. 解密」兩個選項。
加密:
關閉SM1加密安全模塊;
解密:
關閉SM1加密安全模塊;