锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

基于哈希函数的块密码

时间:2022-10-23 01:00:00 hirose连接器9p

基于哈希的块密码

    • Whirlpool的简单回顾
  • SLB哈希函数PGV模型
  • 差分分析

不创建新的压缩功能,使用DES或AES,只使用块密码格式的加密算法。本章将讨论基于这两个特征的块密码。因为它涉及到AES,DES,这里有一个简单的概念科普
DES:(Data Encryption Standard),对称加密算法,密钥长度64bit(56、8位有效密钥验证位)主要分为三个步骤

一、初始置换  二、乘积变换  三:逆初始置换 

AES:Advanced Encryption Standard,对称加密算法的标准,Rijndael具体实现之一;aes密钥的长度必须是128bit(324),192bit(326),256bit(328);而Rijndael密钥长度为32n,总长度在[128、258]之间,主要分为五个步骤:

一、字节替换  二:行移位  三:列混淆  四、密钥轮询  五、密钥扩展 

优缺点对比:

总体来说aes是更高级的对称加密算法,比des及3des更安全高效

1.AES加密速度快
2.AES安全性不低于3DES
3.AES密钥长度更长,可变

在这里插入图片描述
如上图所示,块密码中有三种基本结构,即输入信息M,密钥K,输出密文C。基于哈希的块加密是通过K,P,C连续切换三个位置,前后位置XOR实现块加密机制的操作等微调,图中显示了两种模型。

Whirlpool的简单回顾


输入密钥在加密算法中实现K,P,C三个字符串的长度相等,均为512bits。

动作过程如上,分为四个大步骤。第一步叫做SubByte利用
矩阵调整每个位置的数据,形成新的无序矩阵。

具体的交换过程是以数学算式进行的,如上图所示。

然后根据交换顺序表进行列交换。

矩阵的混合,通过行乘一个矩阵,然后得到一个新的行,会比以前的行有更好的效果。

最后一步是增加轮密钥

其中,轮密钥也以矩阵的形式组成,但除了第一行,矩阵是0,所以实际上只有第一行影响最终数据。

SLB哈希函数PGV模型

n位哈希函数(单块长度哈希函数,SBL哈希函数).n例如,使用一次位分组密码:PGVno.1-12。

基于n位分组密码的2n位哈希函数(双长度哈希函数,DBL例如:MDC-2、MJH、MJH- double、breast- dm、TandemDM、HIROSE
SLB模型中有64种块加密模型,其中4种被称为测试后的安全性,其中8种是非严格安全性和其他不安全性。这64种加密模式现在将被介绍。

P是明文输入,K是密钥,FF是前反馈(进入下一轮反馈机制),C是密文,X是i索引的明文,H是i-索引哈希输出,即上一个哈希输出值。

如上图所示,下输入为K,左输入为输入,右输出。在上述四个模型中,第一个模型和第四个模型不能用作安全哈希函数,其安全性很差。为什么?

本质上,这是因为它们之间没有相关性。也就是说,前者的输出不参与下一个哈希函数的操作,它们是独立的。所以攻击者很容易伪造这个哈希,因为前后没有相关性,所以你可以独立处理和操作每个小块。
还有以下其他模型:












对上述64个模型进行评估,对5个模型进行评估。直接攻击(D),置换攻击(P),前向功能机F,后向攻击B,修改点攻击FP。
D: 假设攻击者有Hi和Hi-一、很容易找到Xi。这种攻击被称为直接攻击。
P:假设 H i = H i ? 1 ⊕ f ′ ( X i ) H_i=H_{i-1} ⊕ f'(X_i) Hi=Hi?1f(Xi),其中 f ′ f' f是一个单方向函数。虽然Xi不能被逆向找到,但是哈希值与顺序连接的块相互独立,没有关联性,此时很容易找到对应的冲突或者第二原像。这种攻击被称为置换攻击。
F: 给定一个Hi-1,和H‘i-1,以及Xi,也就说可以对Hi进行操作。这就很容易找到一个X’i满足 f ( X i ′ , H i − 1 ′ ) = f ( X i , H i − 1 ) = H i f(X'_i,H'_{i-1})=f(X_i,H_{i-1})=H_i fXiHi1=fXiHi1=Hi
B:拥有Hi,并很容易找到Xi和Hi-1。被称为向后攻击
FP:找到Hi-1和Xi能够满足 f ( X i , H i − 1 ) = H i − 1 f(X_i,H_{i-1})=H_{i-1} fXiHi1=Hi1
然后针对这五重攻击对上述64个模型进行分析,分析时剔除之前提及到那种一看就不安全的模型(指相互无关,独立的哈希函数)。
最终哈希结果如下

从而选出了4个安全模型,除此之外,其中有很多模型是很有名的,拥有其他命名的块加密模型。详情如下:



其中我们选择出来了12个模型,前四个是安全的,而后8个仅无法防御FP。而FP的危害性一个是相对较小,其次是出现频率也不高,所以在一定程度的允许上,也可以勉强将只受FP攻击针对的模型称之为安全模型。如此做就拥有了12个安全模型。
这12种安全模型重新整理后如下图所示



再介绍一下 DBL哈希,略微进阶版本,构造如下。

差分分析

假设PKC的各部分的差分分别是α,β和γ。且存在
P ⊕ α = P , K ⊕ β = K , C ⊕ γ = C P⊕α=P,K⊕β=K,C⊕γ=C Pα=P,Kβ=K,Cγ=C

从而满足下式:
E K ⊕ β ( P ⊕ α ) = C ⊕ γ , E K ( P ) = C E_{K⊕β}(P⊕α)=C⊕γ,E_K(P)=C EKβ(Pα)=Cγ,EK(P)=C
攻击框架(相关键差分属性):
存储阶段。对于给定的初始值IV和消息块m,计算第一个压缩函数的输出,然后存储输出和消息块。
搜索阶段。搜索适当的消息块对(X)对应的分组密码存储值之间的相关键差属性。
设置阶段。为了使压缩函数的输出符合相关的键差属性,根据第一输出差值(Hi-1)设置第二输出差值(Xi)。
建设阶段。搜索满足相关键差属性的消息块对,最终找到哈希函数的冲突。

上图是多种哈希函数可以取差分攻击的特征值。

这是差分攻击实现的例子,在某些位置xor一个变量,最终再xor回来等于结果没变。

从自由启动碰撞攻击扩展到碰撞攻击。链接变量差&消息差密文差那么,密文差满足前馈自由启动碰撞!碰撞攻击的复杂性和成功率复杂度:可以忽略(压缩函数调用= 4),成功率:1.所有的PGV方案都具有相同的复杂度和成功率。

对PGV模型的攻击也是一样的,在目标攻击块之前的哈希输出中获得她的差分,并通过差分在不影响输出 情况下操纵输入从而引起碰撞

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章