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

热点内容
c语言回车退出 发布:2025-03-20 19:34:42 浏览:966
好屋源码 发布:2025-03-20 19:24:02 浏览:74
安卓手机怎么改手势接听 发布:2025-03-20 19:23:47 浏览:993
手机wifi在哪个文件夹 发布:2025-03-20 19:22:57 浏览:402
平板电脑怎么缓存动漫 发布:2025-03-20 19:20:10 浏览:40
永恒纪元有脚本吗 发布:2025-03-20 19:18:32 浏览:839
运算法求 发布:2025-03-20 19:17:47 浏览:208
咋看电脑的服务器地址 发布:2025-03-20 19:16:16 浏览:262
康拓2算法 发布:2025-03-20 19:11:49 浏览:597
跨平台编译语言有哪些 发布:2025-03-20 19:08:25 浏览:781