当前位置:首页 » 操作系统 » 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就可以用了,一般来说估计会报缺另外一些库。再继续这个方法依次解决即可。
希望对你有帮助。

热点内容
我的世界国际服服务器pvp视频 发布:2025-08-23 05:45:03 浏览:833
androidviewgroup滑动 发布:2025-08-23 05:35:44 浏览:318
什么是自动配置驱动 发布:2025-08-23 05:33:23 浏览:392
c算法教程 发布:2025-08-23 05:17:37 浏览:13
查看数据库的表的内容 发布:2025-08-23 05:12:24 浏览:996
bbs论坛源码java 发布:2025-08-23 04:39:21 浏览:636
如斯脚本 发布:2025-08-23 04:34:52 浏览:593
c语言等腰三角形 发布:2025-08-23 04:31:17 浏览:578
氦气压缩 发布:2025-08-23 04:28:20 浏览:257
android生成随机数 发布:2025-08-23 04:27:36 浏览:752