信息认证技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章 信息认证技术
3.1 Hash函数和消息完整性 3.2 数字签名技术 3.3 身份识别技术 3.4 认证的具体实现
认证的目的
认证的目的有两个方面: 一是验证信息的发送者是合法的,而不是冒充
的,即实体认证,包括信源、信宿的认证和识 别; 二是验证消息的完整性,验证数据在传输和存 储过程中是否被篡改、重放或延迟等。
MD-4算法设计目标
安全性。找到两个具有相同散列值的消息在计算上不可 行,不存在比穷举攻击更有 效的攻击。
直接安全性。MD-4的安全性不基于任何假设,如因子 分解的难度。
速度。MD-4适用于软件实现,基于32位操作数的一些 简单位操作。
简单性和紧凑性。MD-4尽可能简单,没有大的数据结 构和复杂的程序。
基本概念(续)
Hash函数一般满足以下几个基本需求: (1)输入x可以为任意长度; (2)输出数据长度固定; (3)容易计算,给定任何x,容易计算出x的 Hash值H(x); (4)单向函数:即给出一个Hash值,很难反 向计算出原始输入; (5)唯一性:即难以找到两个不同的输入会得 到相同的Hash输出值(在计算上是不可行的)。
F(X ,Y, Z) (X Y ) ((X ) Z) G(X ,Y, Z) (X Z) (Y (Z))
H(X,Y,Z) X Y Z I (X ,Y, Z) Y (X (Z))
( 是异或,是与, 是或, 是反。)
MD-5的基本运算(续)
CLSs是32bit的移位寄存器,存数循环左移位。 第一轮={7,12,17,22} 第二轮={5,9,14,20} 第三轮={4,11,16,23} 第四轮={6,10,15,21}
有利的Little-Endian结构。MD-4最适合微处理器结构, 更大型、速度更快的计算机要作必要的转化。
MD-5算法(一个512bit分组的处理示意图 )
MD-5算法的步骤
(1)首先填充消息使长度恰好为一个比512bit的倍数 仅少64bit的数。填充的方法是附一个1在消息的后面, 后接所要求的多个0,然后在其后附上64位的填充前的 消息长度。这样可对明文输入按512bit分组, 得bit的Y0 ,字Y1。,YL1 。其中,每个为512bit,即16个长为32
3.1 Hash函数和消息完整性
本节提示: 3.1.1基本概念 3.1.2常见的Hash函数 3.1.3消息认证码
3.1.1 基本概念
Hash函数也称为杂凑函数或散列函数,其输 入为一可变长度x,返回一固定长度串,该串被 称为输入x的Hash值(消息摘要),还有形象 的说法是数字指纹。
因为Hash函数是多对一的函数,所以一定将某 些不同的输入变化成相同的输出。这就要求给 定一个Hash值,求其逆是比较难的,但给定的 输入计算Hash值必须是很容易的,因此也称 Hash函数为单向Hash函数。
Xk为消息的第 q(512bit)组中的第 k 个字
(32bit)。 每次将A,B,C,D分别加上a,b,c,d,然后用下一分组数
据继续运行算法,最后输出是A,B,C,D的级联。
பைடு நூலகம்
其他算法
SHA(Security Hash Algorithm)算法是美国 的NIST和NSA设计的一种标准Hash算法, SHA用于数字签名的标准算法DSS中,也是安 全性较高的一个Hash算法。该算法的输入消息 长度小于bit,最终的输出结果值为160bit。 SHA与MD-4相比较而言,主要是增加了扩展 变换,将前一轮的输出加到下一轮的,这样增 加了雪崩效应。而且由于其160 bit的输出,对 穷举攻击更有抵抗力。
GOST算法,SNEFRU算法等。另外可将标准 分组算法通过级连、迭代也能构造出优秀的 Hash算法。
关于Hash函数的安全性设计的理论主要有两点: 一个是函数的单向性,二是函数影射的随机性。
攻击Hash函数的典型方法
生日攻击的基本观点来自于生日问题:在一个 教室里最少有多少学生时,可使得在这个教室 里至少有两个学生的生日在同一天的概率不小 于50%?这个问题的答案是23。这种攻击不涉 及Hash算法的结构,可用于攻击任何Hash算 法。目前为止,能抗击生日攻击的Hash值至少 要达到128bit。
Hash函数的其他性质
Hash值的长度由算法的类型决定,与输入的消 息大小无关,一般为128或者160位。常用的 单向Hash算法有MDS、SHA-l等。
Hash函数的一个主要功能就是为了实现数据完 整性的安全需要。
Hash函数可以按照其是否有密钥控制分为两 类:一类有密钥控制,以表示,为密码Hash函 数;另一类无密钥控制,为一般Hash函数。
是32Tbit的随机数源。
MD-5的基本运算
MD-5的基本运算(续)
MD-5是四轮运算,每轮输出为128bit,每轮又要进行 16步迭代运算,四轮共需64步完成。
a,b, c, d 即缓存中的四个字,按特定次序变化。
g 是基本逻辑函数 F,G, H , I 中之一,算法中每一轮用其
中之一。
(2)128bit的输出可用下述四个32bit字:A,B,C, D表示。其初始存数以十六进制表示为: A=01234567,B=89ABCDEF,C=FEDCBA98, D=76543210。
(3)算法的主循环次数为消息中按512bit进行分组的
分输组入数的,第每q 次组对51521b2itb数it(据1,6在-字各)轮组中进参行加运运算算,。TY1q,表,示64 为64个元素表,分四组参与不同轮的计算。T i的整数 部分是232 abssini,i 是弧度。T i 可用32bit二元数表示,
中途相遇攻击这是一种选择明文/密文的攻击, 主要是针对迭代和级连的分组密码体制设计的 Hash算法。
3.1.2常见的Hash函数
MD4算法 MD5算法 SHA算法
MD-4算法
MR-4是Ron Rivest设计的单向散列函数, MD表示消息摘要(Message Digest),对输
入消息,算法产生128-位散列值
3.1 Hash函数和消息完整性 3.2 数字签名技术 3.3 身份识别技术 3.4 认证的具体实现
认证的目的
认证的目的有两个方面: 一是验证信息的发送者是合法的,而不是冒充
的,即实体认证,包括信源、信宿的认证和识 别; 二是验证消息的完整性,验证数据在传输和存 储过程中是否被篡改、重放或延迟等。
MD-4算法设计目标
安全性。找到两个具有相同散列值的消息在计算上不可 行,不存在比穷举攻击更有 效的攻击。
直接安全性。MD-4的安全性不基于任何假设,如因子 分解的难度。
速度。MD-4适用于软件实现,基于32位操作数的一些 简单位操作。
简单性和紧凑性。MD-4尽可能简单,没有大的数据结 构和复杂的程序。
基本概念(续)
Hash函数一般满足以下几个基本需求: (1)输入x可以为任意长度; (2)输出数据长度固定; (3)容易计算,给定任何x,容易计算出x的 Hash值H(x); (4)单向函数:即给出一个Hash值,很难反 向计算出原始输入; (5)唯一性:即难以找到两个不同的输入会得 到相同的Hash输出值(在计算上是不可行的)。
F(X ,Y, Z) (X Y ) ((X ) Z) G(X ,Y, Z) (X Z) (Y (Z))
H(X,Y,Z) X Y Z I (X ,Y, Z) Y (X (Z))
( 是异或,是与, 是或, 是反。)
MD-5的基本运算(续)
CLSs是32bit的移位寄存器,存数循环左移位。 第一轮={7,12,17,22} 第二轮={5,9,14,20} 第三轮={4,11,16,23} 第四轮={6,10,15,21}
有利的Little-Endian结构。MD-4最适合微处理器结构, 更大型、速度更快的计算机要作必要的转化。
MD-5算法(一个512bit分组的处理示意图 )
MD-5算法的步骤
(1)首先填充消息使长度恰好为一个比512bit的倍数 仅少64bit的数。填充的方法是附一个1在消息的后面, 后接所要求的多个0,然后在其后附上64位的填充前的 消息长度。这样可对明文输入按512bit分组, 得bit的Y0 ,字Y1。,YL1 。其中,每个为512bit,即16个长为32
3.1 Hash函数和消息完整性
本节提示: 3.1.1基本概念 3.1.2常见的Hash函数 3.1.3消息认证码
3.1.1 基本概念
Hash函数也称为杂凑函数或散列函数,其输 入为一可变长度x,返回一固定长度串,该串被 称为输入x的Hash值(消息摘要),还有形象 的说法是数字指纹。
因为Hash函数是多对一的函数,所以一定将某 些不同的输入变化成相同的输出。这就要求给 定一个Hash值,求其逆是比较难的,但给定的 输入计算Hash值必须是很容易的,因此也称 Hash函数为单向Hash函数。
Xk为消息的第 q(512bit)组中的第 k 个字
(32bit)。 每次将A,B,C,D分别加上a,b,c,d,然后用下一分组数
据继续运行算法,最后输出是A,B,C,D的级联。
பைடு நூலகம்
其他算法
SHA(Security Hash Algorithm)算法是美国 的NIST和NSA设计的一种标准Hash算法, SHA用于数字签名的标准算法DSS中,也是安 全性较高的一个Hash算法。该算法的输入消息 长度小于bit,最终的输出结果值为160bit。 SHA与MD-4相比较而言,主要是增加了扩展 变换,将前一轮的输出加到下一轮的,这样增 加了雪崩效应。而且由于其160 bit的输出,对 穷举攻击更有抵抗力。
GOST算法,SNEFRU算法等。另外可将标准 分组算法通过级连、迭代也能构造出优秀的 Hash算法。
关于Hash函数的安全性设计的理论主要有两点: 一个是函数的单向性,二是函数影射的随机性。
攻击Hash函数的典型方法
生日攻击的基本观点来自于生日问题:在一个 教室里最少有多少学生时,可使得在这个教室 里至少有两个学生的生日在同一天的概率不小 于50%?这个问题的答案是23。这种攻击不涉 及Hash算法的结构,可用于攻击任何Hash算 法。目前为止,能抗击生日攻击的Hash值至少 要达到128bit。
Hash函数的其他性质
Hash值的长度由算法的类型决定,与输入的消 息大小无关,一般为128或者160位。常用的 单向Hash算法有MDS、SHA-l等。
Hash函数的一个主要功能就是为了实现数据完 整性的安全需要。
Hash函数可以按照其是否有密钥控制分为两 类:一类有密钥控制,以表示,为密码Hash函 数;另一类无密钥控制,为一般Hash函数。
是32Tbit的随机数源。
MD-5的基本运算
MD-5的基本运算(续)
MD-5是四轮运算,每轮输出为128bit,每轮又要进行 16步迭代运算,四轮共需64步完成。
a,b, c, d 即缓存中的四个字,按特定次序变化。
g 是基本逻辑函数 F,G, H , I 中之一,算法中每一轮用其
中之一。
(2)128bit的输出可用下述四个32bit字:A,B,C, D表示。其初始存数以十六进制表示为: A=01234567,B=89ABCDEF,C=FEDCBA98, D=76543210。
(3)算法的主循环次数为消息中按512bit进行分组的
分输组入数的,第每q 次组对51521b2itb数it(据1,6在-字各)轮组中进参行加运运算算,。TY1q,表,示64 为64个元素表,分四组参与不同轮的计算。T i的整数 部分是232 abssini,i 是弧度。T i 可用32bit二元数表示,
中途相遇攻击这是一种选择明文/密文的攻击, 主要是针对迭代和级连的分组密码体制设计的 Hash算法。
3.1.2常见的Hash函数
MD4算法 MD5算法 SHA算法
MD-4算法
MR-4是Ron Rivest设计的单向散列函数, MD表示消息摘要(Message Digest),对输
入消息,算法产生128-位散列值