當前位置:首頁 » 操作系統 » linuxcrypto

linuxcrypto

發布時間: 2025-03-20 11:44:35

linux加解密框架(四)加解密流程

本文基於以下軟硬體假定:


架構:AARCH64


內核版本:5.14.0-rc5


Linux內核中加解密流程涉及到對稱加解密、hash(mac)、aead等不同類型演算法的處理。這些演算法在加解密流程中的具體實現各有差異,主要體現在以下方面:



  1. 對稱加解密、mac以及aead等演算法需要密鑰,而hash演算法不需要。

  2. 一般加解密演算法需要初始向量(iv值),以增強安全性,而ecb模式則不需要。

  3. aead演算法支持多種icv長度,初始化演算法上下文時需指定icv(tag)長度,其他演算法則不需。

  4. aead演算法加密時需要包含assoc數據,解密時需包含icv(tag)數據。

  5. 不同加解密演算法的操作函數可能不同,如加密和解密函數、init、update、final等。


為了適應上述差異,內核將加解密流程劃分為三個層次:加解密核心、加解密類型和加解密驅動。加解密核心實現通用功能,加解密類型實現特定演算法的附加功能,加解密驅動則實現具體演算法的全部功能。


內核使用一系列數據結構描述演算法屬性,以skcipher演算法類型和aes_generic演算法實現為例,其關系如下:



  • crypto_alg:唯一標識注冊到內核中的演算法,包含公共屬性如block size、數據對齊長度、演算法優先順序、演算法名、演算法驅動名,以及回調函數。

  • skcipher_alg:skcipher特定結構,包含crypto_alg與skcipher特有的屬性和回調函數,如密鑰長度限制、iv長度、密鑰設置、加密和解密回調等。

  • crypto_tfm:動態實例,創建時需要密鑰、aead的tag size等上下文信息,用於驅動加解密引擎。

  • crypto_skcipher:skcipher動態實例,包含crypto_tfm和特定演算法類型的屬性。

  • crypto_async_request:保存加解密參數的結構,用於執行操作。


內核還支持並行操作,如在smp系統上多核並行加解密,或硬體引擎支持多通道並行執行。為此,內核提供crypto_async_request結構,用於保存每次操作的參數。


skcipher流程包括結構體分配、參數准備、上下文設置、請求參數設置和實際操作執行。關鍵步驟如下:



  1. crypto_alloc_skcipher:分配並初始化crypto_skcipher結構。

  2. skcipher_request_alloc:根據crypto_tfm分配並初始化請求結構。

  3. alloc_cipher_test_sglists:為源/目的數據分配scatterlist內存。

  4. crypto_skcipher_setkey:設置密鑰。

  5. build_cipher_test_sglists:創建sglist。

  6. skcipher_request_set_callback:設置回調函數。

  7. skcipher_request_set_crypt:設置加解密參數。

  8. crypto_skcipher_encrypt:執行加密操作。


類似地,hash流程也包括tfm和request分配、密鑰設置(取決於演算法)、sglist填充和摘要值生成。


本文詳細介紹了Linux內核中加解密流程的組織、數據結構和關鍵步驟,以確保不同演算法在復雜環境下的高效、安全執行。

⑵ linux ssh 找不到libcrypto.so.6

提示應該是少了一些ssh所需要的庫
首先:
yum provides libcrypto.so.6
會出來是哪個rpm包 包含 這個lib庫。
其次:
yum install 這個rpm包
應該就可以解決這個報錯。幸運的話,也許ssh就可以用了,一般來說估計會報缺另外一些庫。再繼續這個方法依次解決即可。
希望對你有幫助。

熱點內容
app服務端源碼 發布:2025-03-21 05:56:41 瀏覽:102
信道估計演算法 發布:2025-03-21 05:37:33 瀏覽:865
怎麼用命令方塊做出伺服器 發布:2025-03-21 05:22:58 瀏覽:798
歌曲腳本 發布:2025-03-21 05:19:31 瀏覽:569
python的range函數 發布:2025-03-21 05:18:48 瀏覽:720
php信息錄入系統 發布:2025-03-21 05:17:21 瀏覽:345
安卓手機里的hms是什麼 發布:2025-03-21 05:15:56 瀏覽:34
恢復出廠設置如何設置密碼 發布:2025-03-21 05:15:46 瀏覽:956
如何設置網頁密碼鎖 發布:2025-03-21 05:15:01 瀏覽:816
linux如何安裝windows 發布:2025-03-21 05:09:19 瀏覽:210