第三章 信息认证技术(1)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章
信息认证技术
第三章 信息认证技术
3.1 3.2 3.3 3.4 Hash函数和消息完整性 数字签名技术 身份识别技术 认证的具体实现
认证的目的
认证的目的有两个方面: 一是验证信息的发送者是合法的,而不是冒充 的,即实体认证,包括信源、信宿的认证和识 别; 二是验证消息的完整性,验证数据在传输和存 储过程中是否被篡改、重放或延迟等。
攻击Hash函数的典型方法
生日攻击的基本观点来自于生日问题:在一个 教室里最少有多少学生时,可使得在这个教室 里至少有两个学生的生日在同一天的概率不小 于50%?这个问题的答案是23。这种攻击不涉 及Hash算法的结构,可用于攻击任何Hash算 法。目前为止,能抗击生日攻击的Hash值至少 要达到128bit。 中途相遇攻击这是一种选择明文/密文的攻击, 主要是针对迭代和级连的分组密码体制设计的 Hash算法。
公钥加密
使用公钥算法进行数字签名的最大方便是没有 密钥分配问题,因为公钥加密算法使用两个不 同的密钥,其中有一个是公开的,另一个是保 密的。公钥一般由一个可信赖的认证机构(CA: Certification Authority)发布的,网上的任 何用户都可获得公钥。而私钥是用户专用的, 由用户本身持有,它可以对由公钥加密的信息 进行解密。
3.2.2常用的数字签名体制
用非对称加密算法实现的数字签名技术最常用 的是DSS和RSA签名,下面分别做简单介绍: 1.RSA签名 2.DSS签名
RSA签名
RSA是最流行的一种加密标准,许多产品 的内核中都有RSA的软件和类库 。下面 详细介绍该签名体制的内容: (1)参数 令 n p1 p2 , p1 p 2 是大素数,令 Z n 和 选并计算出 d 使 ed 1mod n ,公开 n 和 e ,将 p1 , p 2 和 d 保密。
消息摘要
公钥A
私钥A
签名无效
数字签名的实现方法
用对称加密算法进行数字签名
用非对称加密算法进行数字签名
用对称加密算法进行数字签名(Hash签名 )
该签名不属于强计算密集型算法,应用较广泛 使用这种较快Hash算法,可以降低服务器资源的消耗, 减轻中央服务器的负荷 Hash的主要局限是接收方必须持有用户密钥的副本以 检验签名, 因为双方都知道生成签名的密钥,较容易攻 破,存在伪造签名的可能
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} X k 为消息的第 q (512bit)组中的第 k 个字 (32bit)。 每次将A,B,C,D分别加上a,b,c,d,然后用下一分组数 据继续运行算法,最后输出是A,B,C,D的级联。
数字签名的特性(2/2)
签名的消息是不可改变的:经签名的消息不能 被篡改。一旦签名的消息被篡改,则任何人都 可以发现消息与签名之间的不一致性。 签名是不可抵赖的:签名者不能否认自己的签 名。
数字签名技术的功能
数字签名可以解决否认、伪造、篡改及冒充等 问题,具体要求为: 发送者事后不能否认发送的报文签名 接收者能够核实发送者发送的报文签名、接 收者不能伪造发送者的报文签名、接收者不 能对发送者的报文进行部分篡改 网络中的某一用户不能冒充另一用户作为发 送者或接收者。
MD-5的基本运算
MD-5的基本运算(续)
MD-5是四轮运算,每轮输出为128bit,每轮又要进行 16步迭代运算,四轮共需64步完成。 a, b, c, d 即缓存中的四个字,按特定次序变化。 g 是基本逻辑函数 F , G, H , I 中之一,算法中每一轮用其 中之一。
F ( X , Y , Z ) ( X Y ) ((X ) Z ) G( X , Y , Z ) ( X Z ) (Y (Z ))
DSS签名(next)
Digital Signature Algorithm(DSA)是 Schnorr和ElGamal签名算法的变种,被美国 NIST作为DSS(Digital SignatureStandard) 数字签名标准。 DSS是由美国国家标准化研究院和国家安全局 共同开发的。由于它是由美国政府颁布实施的, 主要用于与美国政府做生意的公司,其他公司 则较少使用,它只是一个签名系统,而且美国 政府不提倡使用任何削弱政府窃听能力的加密 软件,认为这才符合美国的国家利益 。
3.1.2常见的Hash函数
MD4算法 MD5算法 SHA算法
MD-4算法
MR-4是Ron Rivest设计的单向散列函数, MD表示消息摘要(Message Digest),对输 入消息,算法产生128-位散列值
MD-4算法设计目标
安全性。找到两个具有相同散列值的消息在计算上不可 行,不存在比穷举攻击更有 效的攻击。 直接安全性。MD-4的安全性不基于任何假设,如因子 分解的难度。 速度。MD-4适用于软件实现,基于32位操作数的一些 简单位操作。 简单性和紧凑性。MD-4尽可能简单,没有大的数据结 构和复杂的程序。 有利的Little-Endian结构。MD-4最适合微处理器结构, 更大型、速度更快的计算机要作必要的转化。
Hash函数的其他性质
Hash值的长度由算法的类型决定,与输入的消 息大小无关,一般为128或者160位。常用的 单向Hash算法有MDS、SHA-l等。 Hash函数的一个主要功能就是为了实现数据完 整性的安全需要。 Hash函数可以按照其是否有密钥控制分为两 类:一类有密钥控制,以表示,为密码Hash函 数;另一类无密钥控制,为一般Hash函数。 关于Hash函数的安全性设计的理论主要有两点: 一个是函数的单向性,二是函数影射的随机性。
消息认证码的实现示意图
M M H
发 送 方
M,Ck(M)
接 受 方
H =? Ck(M) 比较结果 是否相同
密 钥 K
密 钥 K
3.2 数字签名技术
本节提示: 3.2.1数字签名的基本概念 3.2.2常用的数字签名体制 3.2.3盲签名和群签名
3.2.1 数字签名技术
数字签名在信息安全,包括身份认证、数据完 整性、不可否认性以及匿名性等方面有重要应 用,特别是在大型网络安全通信中的密钥分配、 认证及电子商务系统中具有重要作用。数字签 名是实现认证的重要工具。
数字签名分类
以方式分 direct digital signature arbitrated digital signature 以安全性分 无条件安全的数字签名 计算上安全的数字签名 以可签名次数分 一次性的数字签名 多次性的数字签名
数字签名原理
发方A 收方B
消息 消息 Hash函数 签名 消息摘要 加密的 加密算法 解密算法 相等? y 签名有效 n 签名 消息摘要 消息 Hash函数
MD-5算法(一个512bit分组的处理示意图 )
MD-5算法的步骤
(1)首先填充消息使长度恰好为一个比512bit的倍数 仅少64bit的数。填充的方法是附一个1在消息的后面, 后接所要求的多个0,然后在其后附上64位的填充前的 消息长度。这样可对明文输入按512bit分组, 得 Y0 , Y1 ,YL1 。其中,每个为512bit,即16个长为32 bit的字。 (2)128bit的输出可用下述四个32bit字:A,B,C, D表示。其初始存数以十六进制表示为: A=01234567,B=89ABCDEF,C=FEDCBA98, D=76543210。 (3)算法的主循环次数为消息中按512bit进行分组的 分组数,每次对512bit(16-字)组进行运算, Yq 表示 T 输入的第 q 组512bit数据,在各轮中参加运算。1,,64 T 为64个元素表,分四组参与不同轮的计算。 i 的整数 32 T 部分是2 abssini i ,是弧度。 i 可用32bit二元数表示, T 是32bit的随机数源。
基本概念(续)
Hash函数一般满足以下几个基本需求: (1)输入x可以为任意长度; (2)输出数据长度固定; (3)容易计算,给定任何x,容易计算出x的 Hash值H(x); (4)单向函数:即给出一个Hash值,很难反 向计算出原始输入; (5)唯一性:即难以找到两个不同的输入会得 到相同的Hash输出值(在计算上是不可行的)。
用非对称加密算法进行数字签名和验证
1 发送方首先用公开的单向函数对报文进行一次变换,得到数字签 名,然后利用私有密钥对数字签名进行加密后附在报文之后一同发 出。 2 接收方用发送方的公开密钥对数字签名进行解密变换,得到一个 数字签名的明文。发送方的公钥是由一个可信赖的技术管理机构即 验证机构(CA: Certification Authority)发布的。 3 接收方将得到的明文通过单向函数进行计算,同样得到一个数字 签名,再将两个数字签名进行对比,如果相同,则证明签名有效, 否则无效。
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函数。
其他算法
SHA(Security Hash Algorithm)算法是美国 的NIST和NSA设计的一种标准Hash算法, SHA用于数字签名的标准算法DSS中,也是安 全性很高的一个Hash算法。该算法的输入消息 长度小于bit,最终的输出结果值为160bit。 SHA与MD-4相比较而言,主要是增加了扩展 变换,将前一轮的输出加到下一轮的,这样增 加了雪崩效应。而且由于其160 bit的输出,对 穷举攻击更有抵抗力。 GOST算法,SNEFRU算法等。另外可将标准 分组算法通过级连、迭代也能构造出优秀的 Hash算法。
(2)签字过程 对消息 M Z n
,定义
d
S Sigk M M modn
为对 M 签字 (3)验证过程 对给定的 M , S 可按下式验证:
Verk M , S 为真 M S modn
e
(4)安全性分析
显然,由于只有签名者知道 d,由RSA体制知道, 其他人不能伪造签名,但可易于证实所给任意对,其 是否为消息和相应签名构成的合法对。RSA签名过程 下图3.1。
什么是数字签名
通过单向哈希函数实现的数字签名 通过一个单向函数对要传送的报文进行处理得 到的用以认证报文来源并核实报文是否发生变 化的一个字母数字串,该字母数字串被成为该消 息的消息鉴别码或消息摘要。
数字签名的特性( 1/2 )
签名是可信的:任何人都可以方便地验证签名的有效性。 签名是不可伪造的:除了合法的签名者之外,任何其他人伪 造其签名是困难的。这种困难性指实现时计算上是不可行的。 签名是不可复制的:对一个消息的签名不能通过复制变为另 一个消息的签名。如果一个消息的签名是从别处复制的,则 任何人都可以发现消息与签名之间的不一致性,从而可以拒 绝签名的消息。
3.1.3消息认证码
消息认证码(MAC,Messages Authentication Codes),是与密钥相关的的单向Hash 函数,也称为消息鉴别码或是消息校验和。 MAC与单向Hash函数一样,但是还包括一Biblioteka Baidu密 钥。 将单向Hash函数变成MAC的一个简单的办法是 用对称算法加密Hash值。相反将MAC变成单向 Hash函数则只需将密钥公开。
信息认证技术
第三章 信息认证技术
3.1 3.2 3.3 3.4 Hash函数和消息完整性 数字签名技术 身份识别技术 认证的具体实现
认证的目的
认证的目的有两个方面: 一是验证信息的发送者是合法的,而不是冒充 的,即实体认证,包括信源、信宿的认证和识 别; 二是验证消息的完整性,验证数据在传输和存 储过程中是否被篡改、重放或延迟等。
攻击Hash函数的典型方法
生日攻击的基本观点来自于生日问题:在一个 教室里最少有多少学生时,可使得在这个教室 里至少有两个学生的生日在同一天的概率不小 于50%?这个问题的答案是23。这种攻击不涉 及Hash算法的结构,可用于攻击任何Hash算 法。目前为止,能抗击生日攻击的Hash值至少 要达到128bit。 中途相遇攻击这是一种选择明文/密文的攻击, 主要是针对迭代和级连的分组密码体制设计的 Hash算法。
公钥加密
使用公钥算法进行数字签名的最大方便是没有 密钥分配问题,因为公钥加密算法使用两个不 同的密钥,其中有一个是公开的,另一个是保 密的。公钥一般由一个可信赖的认证机构(CA: Certification Authority)发布的,网上的任 何用户都可获得公钥。而私钥是用户专用的, 由用户本身持有,它可以对由公钥加密的信息 进行解密。
3.2.2常用的数字签名体制
用非对称加密算法实现的数字签名技术最常用 的是DSS和RSA签名,下面分别做简单介绍: 1.RSA签名 2.DSS签名
RSA签名
RSA是最流行的一种加密标准,许多产品 的内核中都有RSA的软件和类库 。下面 详细介绍该签名体制的内容: (1)参数 令 n p1 p2 , p1 p 2 是大素数,令 Z n 和 选并计算出 d 使 ed 1mod n ,公开 n 和 e ,将 p1 , p 2 和 d 保密。
消息摘要
公钥A
私钥A
签名无效
数字签名的实现方法
用对称加密算法进行数字签名
用非对称加密算法进行数字签名
用对称加密算法进行数字签名(Hash签名 )
该签名不属于强计算密集型算法,应用较广泛 使用这种较快Hash算法,可以降低服务器资源的消耗, 减轻中央服务器的负荷 Hash的主要局限是接收方必须持有用户密钥的副本以 检验签名, 因为双方都知道生成签名的密钥,较容易攻 破,存在伪造签名的可能
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} X k 为消息的第 q (512bit)组中的第 k 个字 (32bit)。 每次将A,B,C,D分别加上a,b,c,d,然后用下一分组数 据继续运行算法,最后输出是A,B,C,D的级联。
数字签名的特性(2/2)
签名的消息是不可改变的:经签名的消息不能 被篡改。一旦签名的消息被篡改,则任何人都 可以发现消息与签名之间的不一致性。 签名是不可抵赖的:签名者不能否认自己的签 名。
数字签名技术的功能
数字签名可以解决否认、伪造、篡改及冒充等 问题,具体要求为: 发送者事后不能否认发送的报文签名 接收者能够核实发送者发送的报文签名、接 收者不能伪造发送者的报文签名、接收者不 能对发送者的报文进行部分篡改 网络中的某一用户不能冒充另一用户作为发 送者或接收者。
MD-5的基本运算
MD-5的基本运算(续)
MD-5是四轮运算,每轮输出为128bit,每轮又要进行 16步迭代运算,四轮共需64步完成。 a, b, c, d 即缓存中的四个字,按特定次序变化。 g 是基本逻辑函数 F , G, H , I 中之一,算法中每一轮用其 中之一。
F ( X , Y , Z ) ( X Y ) ((X ) Z ) G( X , Y , Z ) ( X Z ) (Y (Z ))
DSS签名(next)
Digital Signature Algorithm(DSA)是 Schnorr和ElGamal签名算法的变种,被美国 NIST作为DSS(Digital SignatureStandard) 数字签名标准。 DSS是由美国国家标准化研究院和国家安全局 共同开发的。由于它是由美国政府颁布实施的, 主要用于与美国政府做生意的公司,其他公司 则较少使用,它只是一个签名系统,而且美国 政府不提倡使用任何削弱政府窃听能力的加密 软件,认为这才符合美国的国家利益 。
3.1.2常见的Hash函数
MD4算法 MD5算法 SHA算法
MD-4算法
MR-4是Ron Rivest设计的单向散列函数, MD表示消息摘要(Message Digest),对输 入消息,算法产生128-位散列值
MD-4算法设计目标
安全性。找到两个具有相同散列值的消息在计算上不可 行,不存在比穷举攻击更有 效的攻击。 直接安全性。MD-4的安全性不基于任何假设,如因子 分解的难度。 速度。MD-4适用于软件实现,基于32位操作数的一些 简单位操作。 简单性和紧凑性。MD-4尽可能简单,没有大的数据结 构和复杂的程序。 有利的Little-Endian结构。MD-4最适合微处理器结构, 更大型、速度更快的计算机要作必要的转化。
Hash函数的其他性质
Hash值的长度由算法的类型决定,与输入的消 息大小无关,一般为128或者160位。常用的 单向Hash算法有MDS、SHA-l等。 Hash函数的一个主要功能就是为了实现数据完 整性的安全需要。 Hash函数可以按照其是否有密钥控制分为两 类:一类有密钥控制,以表示,为密码Hash函 数;另一类无密钥控制,为一般Hash函数。 关于Hash函数的安全性设计的理论主要有两点: 一个是函数的单向性,二是函数影射的随机性。
消息认证码的实现示意图
M M H
发 送 方
M,Ck(M)
接 受 方
H =? Ck(M) 比较结果 是否相同
密 钥 K
密 钥 K
3.2 数字签名技术
本节提示: 3.2.1数字签名的基本概念 3.2.2常用的数字签名体制 3.2.3盲签名和群签名
3.2.1 数字签名技术
数字签名在信息安全,包括身份认证、数据完 整性、不可否认性以及匿名性等方面有重要应 用,特别是在大型网络安全通信中的密钥分配、 认证及电子商务系统中具有重要作用。数字签 名是实现认证的重要工具。
数字签名分类
以方式分 direct digital signature arbitrated digital signature 以安全性分 无条件安全的数字签名 计算上安全的数字签名 以可签名次数分 一次性的数字签名 多次性的数字签名
数字签名原理
发方A 收方B
消息 消息 Hash函数 签名 消息摘要 加密的 加密算法 解密算法 相等? y 签名有效 n 签名 消息摘要 消息 Hash函数
MD-5算法(一个512bit分组的处理示意图 )
MD-5算法的步骤
(1)首先填充消息使长度恰好为一个比512bit的倍数 仅少64bit的数。填充的方法是附一个1在消息的后面, 后接所要求的多个0,然后在其后附上64位的填充前的 消息长度。这样可对明文输入按512bit分组, 得 Y0 , Y1 ,YL1 。其中,每个为512bit,即16个长为32 bit的字。 (2)128bit的输出可用下述四个32bit字:A,B,C, D表示。其初始存数以十六进制表示为: A=01234567,B=89ABCDEF,C=FEDCBA98, D=76543210。 (3)算法的主循环次数为消息中按512bit进行分组的 分组数,每次对512bit(16-字)组进行运算, Yq 表示 T 输入的第 q 组512bit数据,在各轮中参加运算。1,,64 T 为64个元素表,分四组参与不同轮的计算。 i 的整数 32 T 部分是2 abssini i ,是弧度。 i 可用32bit二元数表示, T 是32bit的随机数源。
基本概念(续)
Hash函数一般满足以下几个基本需求: (1)输入x可以为任意长度; (2)输出数据长度固定; (3)容易计算,给定任何x,容易计算出x的 Hash值H(x); (4)单向函数:即给出一个Hash值,很难反 向计算出原始输入; (5)唯一性:即难以找到两个不同的输入会得 到相同的Hash输出值(在计算上是不可行的)。
用非对称加密算法进行数字签名和验证
1 发送方首先用公开的单向函数对报文进行一次变换,得到数字签 名,然后利用私有密钥对数字签名进行加密后附在报文之后一同发 出。 2 接收方用发送方的公开密钥对数字签名进行解密变换,得到一个 数字签名的明文。发送方的公钥是由一个可信赖的技术管理机构即 验证机构(CA: Certification Authority)发布的。 3 接收方将得到的明文通过单向函数进行计算,同样得到一个数字 签名,再将两个数字签名进行对比,如果相同,则证明签名有效, 否则无效。
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函数。
其他算法
SHA(Security Hash Algorithm)算法是美国 的NIST和NSA设计的一种标准Hash算法, SHA用于数字签名的标准算法DSS中,也是安 全性很高的一个Hash算法。该算法的输入消息 长度小于bit,最终的输出结果值为160bit。 SHA与MD-4相比较而言,主要是增加了扩展 变换,将前一轮的输出加到下一轮的,这样增 加了雪崩效应。而且由于其160 bit的输出,对 穷举攻击更有抵抗力。 GOST算法,SNEFRU算法等。另外可将标准 分组算法通过级连、迭代也能构造出优秀的 Hash算法。
(2)签字过程 对消息 M Z n
,定义
d
S Sigk M M modn
为对 M 签字 (3)验证过程 对给定的 M , S 可按下式验证:
Verk M , S 为真 M S modn
e
(4)安全性分析
显然,由于只有签名者知道 d,由RSA体制知道, 其他人不能伪造签名,但可易于证实所给任意对,其 是否为消息和相应签名构成的合法对。RSA签名过程 下图3.1。
什么是数字签名
通过单向哈希函数实现的数字签名 通过一个单向函数对要传送的报文进行处理得 到的用以认证报文来源并核实报文是否发生变 化的一个字母数字串,该字母数字串被成为该消 息的消息鉴别码或消息摘要。
数字签名的特性( 1/2 )
签名是可信的:任何人都可以方便地验证签名的有效性。 签名是不可伪造的:除了合法的签名者之外,任何其他人伪 造其签名是困难的。这种困难性指实现时计算上是不可行的。 签名是不可复制的:对一个消息的签名不能通过复制变为另 一个消息的签名。如果一个消息的签名是从别处复制的,则 任何人都可以发现消息与签名之间的不一致性,从而可以拒 绝签名的消息。
3.1.3消息认证码
消息认证码(MAC,Messages Authentication Codes),是与密钥相关的的单向Hash 函数,也称为消息鉴别码或是消息校验和。 MAC与单向Hash函数一样,但是还包括一Biblioteka Baidu密 钥。 将单向Hash函数变成MAC的一个简单的办法是 用对称算法加密Hash值。相反将MAC变成单向 Hash函数则只需将密钥公开。