1. 程式人生 > 其它 >Redis--回顧提要

Redis--回顧提要

基於密碼演算法庫的國密演算法支援研究與應用

小組成員:

20201230張國強
20201206韓進
20201214羅雲帆
20201216徐嘉駿

指導教師:婁嘉鵬

提交時間:2022年12月10日

一、設計方案及可行性分析

1. 任務內容

本次課題設計重在對國密演算法庫的查詢以及對庫內國密演算法的呼叫。不同的程式語言目前其演算法庫內的加密演算法種類不同,其呼叫也存在不小差異。故在後期實現各類加密系統時必不可少要呼叫對應程式語言的加密演算法庫,此次課設內容的學習對於以後的軟體開發既是強大的地基,又是軟體安全的強大保障。

2. 任務要求

儘可能多地查詢程式語言對應的密碼演算法庫,理解與掌握其內部演算法包裝介面,設計呼叫程式對其介面進行呼叫測試。在完成基本語言C、JAVA、Python對應的演算法庫蒐集以及呼叫測試後,嘗試尋找支援國密演算法的其他程式語言並實現呼叫。

二、詳細設計思路

1. 密碼庫查詢與介面學習

羅雲帆,徐嘉駿儘可能多地查詢各類程式語言的密碼演算法庫資料;韓進、張國強(組長)對查到的資料進行整理研究;
首先我們對國密演算法原理以及種類進行了深入瞭解,為後續對演算法庫的查詢奠定一定的基礎;


圖1 基礎實現呼叫的國密演算法


圖2 國密演算法分類

之後我們通過在github、gitee上對密碼庫查詢並搜尋其所有版本,為找到支援國密演算法的介面。通過其庫說明README檔案以及其內部的demo測試程式原始碼和國密演算法實現原始碼學習其介面的使用。如下圖:



2. 呼叫程式編寫

通過對庫介面的學習,我們小組分工完成各庫國密演算法介面的呼叫程式並通過程式碼託管平臺將程式碼託管:

目錄結構舉例如下:


3. 安裝並呼叫密碼庫完成測試

  • 密碼庫安裝

通過github或gitee內查詢對應的庫,將其工作目錄利用git clone在本地,再通過其README檔案提供的安裝步驟進行原始碼配置安裝。根據自己的系統環境進行簡單的修改即可利用makefile生成對應的動態libxx.so庫以及靜態libxx.a庫。如:

  • C庫呼叫

這類庫利用gcc編譯選項,編譯源程式時生成可執行程式實現呼叫。如:


  • JAVA及Python庫呼叫

這一類庫為操作方便,採用IDE導包的方式完成呼叫:


4. 驗證測試

我們對呼叫結果進行了測試與驗證:




三、原始碼及註釋

具體呼叫過程結果及程式碼見小組專案連結:

project: 各種程式語言的密碼庫 (gitee.com)

四、個人報告

20201230張國強:https://www.cnblogs.com/RookieHacker1230/p/16971391.html
20201206韓進:https://www.cnblogs.com/han-jin/p/16971309.html
20201214羅雲帆:
20201216徐嘉駿:https://www.cnblogs.com/zhilan/p/16971427.html