自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 Linux加密框架应用示例(五)

函数crypto_init_shash_ops_async初始化异步哈希算法实例hmac_md5_ahash流程如下所示:1)调用crypto_create_tfm函数根据算法calg(即hmac_md5_alg)和算法类型常量frontend(&crypto_shash_type)创建同步哈希算法实例shash(即hmac_md5_shash)。注意:此时创建算法实例hmac_md5_ahash时的crypto_create_tfm函数调用还未结束,再次调用crypto_create_tfm函数创建算

2022-06-12 11:02:29 416

原创 Linux加密框架应用示例(四)

创建异步哈希算法实例

2022-06-05 14:30:58 786

原创 Linux加密框架应用示例(三)

哈希算法应用实例(二)创建动态算法"hmac(md5)"(二)动态算法"hmac(md5)"是HMAC算法模板在基础算法MD5基础上创建的动态算法,HMAC算法模板定义如下所示:static struct crypto_template hmac_tmpl = { .name = "hmac", .create = hmac_create, .free = shash_free_instance, .module = THIS_MODULE,};HMAC算法模板定义的算法模板实例创建

2022-05-29 20:58:46 495

原创 Linux加密框架应用示例(二)

创建哈希算法实例

2020-10-28 22:13:48 947

原创 Linux加密框架的应用示例(一)

创建哈希算法实例crypto_alloc_ahash函数加密框架中的哈希算法可以是同步方式实现的也可以是异步方式实现的,但是算法应用不关注哈希算法的实现方式,关注的是哈希算法提供的算法接口。为实现统一管理,加密框架将哈希算法的外部接口统一定义为异步哈希算法接口。算法实例是算法应用和加密框架之间的桥梁,算法应用通过算法实例实现算法调用。以哈希算法实例为例,在IPSEC框架的AH协议模块中,协议状态初始化(ah_init_state函数)时,将根据配置的认证算法名(x->aalg->alg

2020-10-18 19:57:34 1752

原创 Linux加密框架的算法管理(五)

创建哈希算法实例crypto_alloc_ahash函数加密框架中的哈希算法可以是同步方式实现的也可以是异步方式实现的,但是算法应用不关注哈希算法的实现方式,关注的是哈希算法提供的算法接口。为实现统一管理,加密框架将哈希算法的外部接口统一定义为异步哈希算法接口。算法实例是算法应用和加密框架之间的桥梁,算法应用通过算法实例实现算法调用。以哈希算法实例为例,在IPSEC框架的AH协议模块中,协议状态初始化时,将根据配置的认证算法名创建对应的异步哈希算法实例ahash,如下所示。 ahash = cr

2020-10-08 19:23:04 1100

原创 Linux加密框架中的主要数据结构(六)

算法类型算法类型在算法说明数据结构中有两个成员变量可以表示算法类型(包括算法实现方式),分别为:(1)算法标志cra_flags的低4bit表示算法类型,在crypto.h(root\include\linux\crypto.h)中定义了一系列形如CRYPTO_ALG_TYPE_XXX的算法类型宏,如下所示:#define CRYPTO_ALG_TYPE_CIPHER 0x00000001 //分组加密算法#define CRYPTO_ALG_TYPE_COMPRESS 0x00000002

2020-09-05 11:08:39 976

原创 Lniux加密框架中的主要数据结构(五)

算法幼虫定义如前所述,算法幼虫在算法注册和自检过程中起到非常重要的作用,表示无法提供预期服务的算法,在root/crypto/internal.h中算法幼虫定义如下所示。struct crypto_larval { struct crypto_alg alg; struct crypto_alg *adult; struct completion completion; u32 mask;};算法幼虫数据结构struct crypto_larval中各成员变量含义如下所示。1)al

2020-08-24 21:49:30 666

原创 Linux加密框架的算法管理(四)

算法检测算法检测通知如前所属,无论是静态算法还是动态算法,算法注册的最后一步都是进行算法正确性检验,一般流程是先调用__crypto_register_alg函数进行通用的算法注册(即将待注册的算法添加到算法管理链表中),同时创建对应的检测用算法幼虫,然后调用crypto_wait_for_test函数启动算法正确性检验,并等待检验结束。简单地说,算法正确性检验就是利用样本数据sampledata对算法接口进行计算正确性的验证。算法通过正确性检验的标志是算法标志cra_flags中置算法已检测标志

2020-07-16 21:19:37 876 2

原创 Linux加密框架的算法管理(三)

动态算法管理静态算法和动态算法加密框架中的算法分为静态算法和动态算法两种,其中静态算法指的是以"算法名.ko"形式存在的静态编译的算法模块,如aes.ko表示AES算法模块,md5.ko表示MD5算法模块,这些静态算法模块是预定义的,在内核启动时或通过request_module函数加载到加密框架中的。在加密框架中,静态算法表示为一个算法说明实例。而动态算法指的是根据算法模式(如CBC、HMAC等)和基础算法(静态算法或动态算法)创建的算法,如"cbc(aes)"表示使用AES算法的CBC模式的新

2020-07-08 21:06:35 998 1

原创 Linux加密框架的算法管理(二)

算法查找流程算法查找接口crypto_alg_mod_lookup算法实例tfm是算法的一个可运行的副本,因此在创建算法实例前首先要查找确认算法是否已经注册有效,此时算法查找由函数crypto_alg_mod_lookup实现。crypto_alg_mod_lookup函数输入参数包括待查找的算法名name、算法类型type和算法类型屏蔽位mask,查找命中时返回查找到的算法alg,查找未命中时返回异常。crypto_alg_mod_lookup函数执行流程如下所示。1)crypto_alg

2020-07-05 11:10:10 917

原创 Linux加密框架中的主要数据结构(四)

数据结构之算法模板实例定义实例

2020-07-03 19:55:40 891 1

原创 Linux加密框架的算法管理(一)

算法注册流程静态算法模块初始化-分组算法模块初始化AES算法模块(aes_generic.c)的初始化接口aes_init实现向加密框架注册AES算法的功能,如下所示。static int __init aes_init(void){ return crypto_register_alg(&aes_alg);}-哈希算法模块初始化MD5算法模块(md5.c)的初始化接口md5_mod_init实现向加密框架注册MD5算法的功能,如下所示。static int __init

2020-07-02 15:18:36 1159 1

原创 Linux加密框架中的主要数据结构(三)

算法模板数据结构struct crypto_template

2020-06-30 18:27:26 793

原创 Linux加密框架中的主要数据结构(二)

数据结构之哈希算法说明定义实例

2020-06-29 15:20:13 935

原创 Linux加密框架中的主要数据结构(一)

数据结构之算法说明通用算法说明-定义加密框架将算法的属性抽象为算法说明数据结构struct crypto_alg,加密框架中的每一个算法(基础算法和衍生算法)都表示为一个算法说明数据结构的实例,因此将struct crypto_alg称为通用算法说明数据结构。后续章节中如无特殊说明,算法说明数据结构和通用算法数据结构均指的是struct crypto_alg。在root/include/linux/crypto.h中,算法说明数据结构struct crypto_alg定义如下:struct c

2020-06-27 12:36:24 1182

原创 Linux加密框架中的算法和算法模式(三)

汇总加密框架中的对称密码算法汇总加密框架中共有14个对称密码算法源码文件,如下所示。如上所示,在arc4.c中定义了两个与RC4算法相关的算法实现,分别为arc4和ecb(arc4),其中arc4是RC算法的算法实现,而ecb(arc4)是RC算法ECB模式的算法实现,在加密框架中,将arc4称为基础算法,ecb(arc4)称为衍生算法。就RC4算法而言,arc4和ecb(arc4)是等价的,但在加密框架中,算法应用(如IPSEC)不能通过arc4访问RC4算法,只能通过ecb(arc4)访问R

2020-06-26 11:40:37 642

原创 Linux加密框架中的算法和算法模式(二)

算法模式分组算法模式-ECB模式ECB(Electronic Code Book,电码本)模式是分组密码的一种最基本的工作模式。在该模式下,明文数据被分为大小合适的分组,然后对每个分组独立进行加密或解密,如下图所示。如果两个明文块相同(如明文块1和明文块2),则加密输出相同的密文块(如密文块1和密文块2)。ECB模式的优点在于操作简单,易于实现。由于分组的独立性,利于实现并行处理,并能很好地防止误码扩散。由于所有分组的加密方式一致,明文中重复内容(即模式)会在密文中有所体现,因此难以抵抗统计分

2020-06-24 11:24:41 1585

原创 Linux加密框架中的算法和算法模式(一)

1. 总述本节主要包括两方面的内容,其一是Linux加密框架中支持的算法简介,其二是Linux加密框架中支持的算法工作模式简介。本节内容主要来自于网络。2. 算法汇总密码算法常见的密码算法可以分为三类,对称密码算法、非对称密码算法和哈希算法。对称密码算法指的是加密和解密使用相同密钥的密码算法,其优点在于加解密的高速度和使用长密钥时的难破解性。非对称密码算法指的是加密和解密使用不同密钥的加密算法,也成为公钥密码算法。假设两个用户要加密交换数据,双方交换公钥,使用时乙方用对方的公钥加密,另一方

2020-06-22 17:06:35 1804 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除