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

【密码算法 之六】CCM 浅析 加密流程总结首先将数据N,A,P格式化成block块,分别对各个块进行加密,取最后一个“密文块”的高Tlen字节作为Tag值(至此CCM方法计算的MAC值已经得到了);通过“计数生成函数”生成各Ctr0,Ctr1 … Ctrm值(生成器的种子就是nonce),然后分别对各个Ctrx值进行加密,得到密文Sx,将S1,S2 … Sm拼接组成S(特别注意:这里的S0);最后得到密文,密文是PT按照一定的形式进行的拼接;CCM的加密过程是“先计算MAC,再进行加密”,符合“MTE”的模式 阅读详情

算法模式

  1. 分组算法模式

-ECB模式
ECB(Electronic Code Book,电码本)模式是分组密码的一种最基本的工作模式。在该模式下,明文数据被分为大小合适的分组,然后对每个分组独立进行加密或解密,如下图所示。
ECB模式加密原理
如果两个明文块相同(如明文块1和明文块2),则加密输出相同的密文块(如密文块1和密文块2)。
ECB模式的优点在于操作简单,易于实现。由于分组的独立性,利于实现并行处理,并能很好地防止误码扩散。由于所有分组的加密方式一致,明文中重复内容(即模式)会在密文中有所体现,因此难以抵抗统计分析攻击。
ECB模式一般用于小数据量的字符信息的安全性保护,例如密钥保护。
加密框架支持分组算法的ECB模式,实现源码为ecb.c。
-CBC模式
1976年,IBM发明了密码分组链接(CBC,cipher-block chaining)模式。在该模式中,每个明文块先与前一个密文块进行异或后,再进行加密,如下图所示。
CBC模式加密原理
如上图所示,每个密文块都依赖于它前面所有的明文块,同时为保证每条消息的唯一性,在第一个块中需要使用初始向量IV。若第一个块的下标为1,则CBC模式的加密过程为Ci=Ek(Pi⊕Ci-1),C0=IV,而其解密过程为Pi=Dk(Ci)⊕Ci-1,C0=IV,其中Pi表示第i个明文块,Ci表示第i个密文块,E和D分别为加密器和解密器,k为密钥。
CBC模式的主要缺点在于加密过程是串行的,无法被并行化,而且明文数据必须被填充到块大小的整数倍。加密时,明文中的微小改变会导致气候的全部密文块都发生变化(即误码扩散)。解密时,从两个邻接的密文块即可得到一个明文块,因此解密过程可以被并行化,而解密时密文中一位的改变只会导致其对应的明文块完全改变和下一个明文块中对应位发生改变,不会影响到其他明文块的内容。
加密框架支持分组算法的CBC模式,实现源码为cbc.c。
-CTR模式
CTR(Counter,计数器)模式将块密码变为流密码,通过一个递增的加密计数器以产生连续的密码流,其中计数器可以是任意保证不产生长时间重复输出的函数,使用要给普通的计数器是最简单和最常见的做法。
采用普通计数器的CTR加密流程如下所示。
CTR模式加密原理
图中Nonce(随机数)和计数器可以通过级联、相加或异或等运算使得相同的明文产

信息安全-块对称加密 AES ECB模式 CBC模式 每次加密都会随机产生一个不同的比特序列来作为初始化向量; 无法直接对中间的明文分组进行加密,如要生成密文3,必须要凑齐明文分组1、2、3,一旦加密时中间有一个比特缺失了,也会导致明文分组的长度发生变化,这样缺失比特的位置之后的密文分组也将全部无法解密了; 解密过程中,只要密文分组的长度没有变化,中间有一个分组损坏了,解密时最多只有两个分组受到数... 阅读详情

相关推荐

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

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

weixin_43916535的博客 2189

Linux加密框架中的算法算法模式(2)——模式介绍

算法模式

yangguoyu8023的博客 2600

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

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

weixin_43916535的博客 747

Linux加密框架中的算法算法模式(1)——算法介绍

算法算法模式

yangguoyu8023的博客 1988

【密码算法 之三】分组密码工作模式 (ECB \ CBC \ CFB \ OFB \ CTR \ XTS)浅析

1. 什么是分组密码的模式   对称加密算法DES、3DES、AES等都属于分组密码,它们只能加密固定长度的明文,然而在实际生活中,人们通常需要加密的文件(数据)并不是8字节或者16字节的单个明文分组,而是需要加密一个较大的文件或者电子邮件等,对于这种需要加密任意长度的明文,就需要对分组密码进行迭代,分组密码的迭代方式就称为分组密码的“模式”。   分组密码的模式有很多种,主要分为如下几类: ECB模式:Electronic Code Book mode(电子密码本模式) CBC模式:Cipher Blo

KXue0703的博客 3万+

密码库LibTomCrypt学习记录——(2.17)分组密码算法的工作模式——XTS磁盘加密模式

XTS 存储加密 磁盘加密通常使用特殊目的、专门设计的模式。可以调节的小数据块加密模式(LRW,XEXXTS)大数据块的模式(CMCEME)是设计用于加密磁盘区块的。另外几种工作模式可能会在后面介绍。 在对磁盘的加密中,通常一个扇区大小为512 Byte。加密时将要写入扇区的明文数据进行加密,然后存储到扇区上。解密时,希望能直接读取到一个扇区上的信息进行解密。我的理解是,存储加密的基本要...

专注商用密码落地,方案与技术解析,分享密码技术与安全经验。 1万+

Linux加密框架中的算法算法模式

算法

生活需要深度 565

Linux crypto相关知识的汇总 Linux加密框架crypto中的算法算法模式(一)

SHA系列算法的摘要长度分贝为:SHA1为20字节(160位)、SHA256为32字节(256位)、SHA384位48字节(384位)、SHA512为64字节(512位),其中SHA1应用较为广泛,主要应用于CA数字证书中,但已被中国山东大学王小云教授攻破,可以快速找到碰撞。3DES(即Triple DES)是DES向AES过渡的加密算法,是比DES更安全的一种变形,3DES使用2条56位的密钥对数据执行三次DES算法加密过程是加密e-解密d-加密e,解密过程是解密e-加密d-解密e。

生活需要深度 866

Linux crypto相关知识的汇总 Linux加密框架crypto对称算法哈希算法加密模式

若第一个块的下标为1,则CBC模式加密过程为Ci=Ek(Pi⊕Ci-1),C0=IV,而其解密过程为Pi=Dk(Ci)⊕Ci-1,C0=IV,其中Pi表示第i个明文块,Ci表示第i个密文块,ED分别为加密解密器,k为密钥。HMAC运算表达式为HMAC(K,M)=H((K’⊕opad)||H((K’⊕ipad)||M)),其中⊕表示异或运算,||表示级联运算,M为一个输入消息,opad为与数据块等长的0x5C,ipad为与数据块等长的0x36,K’为密钥K以0x00填充的与数据块等长的字符串。

生活需要深度 683

Linux加密框架中的算法算法模式(3)——总结

目录 1. 加密框架中的对称密码算法汇总 2. 加密框架中的哈希算法汇总 3.加密框架中的算法模式汇总 4. 最后一点说明 1. 加密框架中的对称密码算法汇总 加密框架中共有14个对称密码算法源码文件,如下所示。 如上所示,在arc4.c中定义了两个与RC4算法相关的算法实现,分别为arc4ecb(arc4),其中arc4是RC算法算法实现,而ecb(arc4)是RC算法ECB模式算法实现,在加密框架中,将arc4称为基础算法,ecb(arc4)称为衍生算法。就RC4...

yangguoyu8023的博客 398

linux4.14 加密框架 —— 静态算法动态算法

目录 1. 静态算法动态算法 2. 创建动态算法 2.1 发布创建动态算法通知 2.2cryptomgr_schedule_probe 2.3cryptomgr_probe 3. 注册动态算法crypto_register_instance 1. 静态算法动态算法 加密框架中的算法分为静态算法动态算法两种,其中静态算法指的是以"算法名.ko"形式存在的静态编译的算法模块,如aes.ko表示AES算法模块,md5.ko表示MD5算法模块,这些静态算法模块是预定义的,在...

yangguoyu8023的博客 1510

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

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

weixin_43916535的博客 1284

linux加密框架 crypto 算法管理 - 动态静态算法管理

参考链接 Linux加密框架算法管理(三)_家有一希的博客-CSDN博客 动态静态算法管理 静态算法 加密框架中的算法分为静态算法动态算法两种,其中静态算法指的是以"算法名.ko"形式存在的静态编译的算法模块,如aes.ko表示AES算法模块,md5.ko表示MD5算法模块 静态算法模块是预定义的,在内核启动时或通过request_module函数加载到加密框架中的加密框架中,静态算法表示为一个算法说明实例。 动态算法 而动态算法指的是根据算法模式(如CBC、HMAC等)基础算法(静

CHYabc123456hh的博客 1467

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

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

weixin_43916535的博客 1994

Linux加密框架 crypto算法模板 以及CBC算法模板实例

参考链接 Linux加密框架中的主要数据结构(四)_家有一希的博客-CSDN博客 algapi.h - include/crypto/algapi.h - Linux source code (v5.15.11) - Bootlin struct crypto_instance { struct crypto_alg alg; struct crypto_template *tmpl; union { /* Node in list of instances after registra

CHYabc123456hh的博客 1181
上一篇: Linux加密框架中的算法和算法模式(一)
下一篇: Linux加密框架中的算法和算法模式(三)
家有一希
博客等级 码龄8年 29粉丝 19原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值