第五部分
信息认证技术
? 5.1 数字签名技术
? 5.2 身份识别技术
? 5.3 杂凑函数和消息完整性
? 5.4认证模式与认证方式
? 5.5 认证的具体实现
? 5.6 认证码
认证的目的
? 认证的目的有两个方面:
? 一是验证信息的发送者是合法的,而不
是冒充的,即实体认证,包括信源、信
宿的认证和识别;
? 二是验证消息的完整性,验证数据在传
输和存储过程中是否被篡改、重放或延
迟等。
5.1.1 数字签名技术
? 数字签名在信息安全, 包括身份认证,
数据完整性, 不可否认性以及匿名性等
方面有重要应用, 特别是在大型网络安
全通信中的密钥分配, 认证及电子商务
系统中具有重要作用 。 数字签名是实现
认证的重要工具 。
什么是数字签名( 1/2)
1.通过单向哈希函数实现的数字签名
? 通过一个单向函数对要传送的报文进行
处理得到的用以认证报文来源并核实报
文是否发生变化的一个字母数字串,该字
母数字串被成为该消息的消息鉴别码或
消息摘要。
什么是数字签名 (2/2)
2.公钥签名技术
? 公钥体制签名的时候用户用自己的私钥对原始
数据的哈希摘要进行加密得到数据,然后信息
接收者使用信息发送者的公钥对附在原始信息
后的数字签名进行解密后获得哈希摘要,并通
过与用自己收到的原始数据产生的哈希摘要对
照,便可确信原始信息是否被篡改,这样就保
证了数据传输的不可否认性 。
数字签名的特性( 1/2)
签名是可信的,任何人都可以方便地验证签名
的有效性 。
签名是不可伪造的,除了合法的签名者之外,
任何其他人伪造其签名是困难的。这种困难性
指实现时计算上是不可行的。
签名是不可复制的,对一个消息的签名不能通
过复制变为另一个消息的签名。如果一个消息
的签名是从别处复制的,则任何人都可以发现
消息与签名之间的不一致性,从而可以拒绝签
名的消息。
数字签名的特性( 2/2)
? 签名的消息是不可改变的,经签名的消
息不能被篡改 。 一旦签名的消息被篡改,
则任何人都可以发现消息与签名之间的
不一致性 。
签名是不可抵赖的,签名者不能否认自
己的签名。
数字签名技术的功能
? 数字签名可以解决否认, 伪造, 篡改及
冒充等问题, 具体要求为:
– 发送者事后不能否认发送的报文签名
– 接收者能够核实发送者发送的报文签名, 接
收者不能伪造发送者的报文签名, 接收者不
能对发送者的报文进行部分篡改
– 网络中的某一用户不能冒充另一用户作为发
送者或接收者 。
数字签名分类
? 以安全性分
?无条件安全的数字签名
?计算上安全的数字签名
? 以可签名次数分
?一次性的数字签名
?多次性的数字签名
数字签名原理
消息
Hash函数
消息摘要
发方 A
相等?
收方 B
加密算法
私钥 A
签名
消息
加密的
消息摘要
签名
消息
Hash函数
消息摘要
解密算法
公钥 A
签名有效
y
签名无效
n
数字签名的实现方法
? 用对称加密算法进行数字签名
? 用非对称加密算法进行数字签名
用对称加密算法进行数字签名
( 1/2)
? Hash函数
? 所谓 Hash函数,即对于任意长度的信息 m,经过哈希函数运算后,
压缩成固定长度的数,比如 64比特,要求满足:
? (1)已知哈希函数的输出,要求它的输入是困难的,即已知
c=Hash(m),求 m是困难的。
? (2)已知 m,计算 Hash(m)是容易的。
? (3)已知 C1=Hash(m1),构造 m2使 Hash( m2)=C1是困难的。
? (4)c=Hash(m),c的每一比特都与 m的每一比特相关,并有高敏感
性。即每改变 m的一比特,都将对 c产生明显影响。
? (5)作为一种数字签名,还要求哈希函数除了信息 m自身之外,应
该基于发信方的秘密信息对信息 m进行确认。
用对称加密算法进行数字签名
( Hash签名 ) ( 2/2)
? 该签名不属于强计算密集型算法,应用较广泛
? 使用这种较快 Hash算法,可以降低服务器资源
的消耗,减轻中央服务器的负荷
? Hash的主要局限是接收方必须持有用户密钥的
副本以检验签名,因为双方都知道生成签名的
密钥,较容易攻破,存在伪造签名的可能
用非对称加密算法进行数字签名和验证
1 发送方首先用公开的单向函数对报文进行一次变换,
得到数字签名,然后利用私有密钥对数字签名进行加
密后附在报文之后一同发出。
2 接收方用发送方的公开密钥对数字签名进行解密变换,
得到一个数字签名的明文。发送方的公钥是由一个可
信赖的技术管理机构即验证机构( CA,Certification
Authority)发布的。
3 接收方将得到的明文通过单向函数进行计算,同样得
到一个数字签名,再将两个数字签名进行对比,如果
相同,则证明签名有效,否则无效。
5.1.2常用的数字签名体制介绍
? 用非对称加密算法实现的数字签名技术
最常用的是 DSS和 RSA签名
5.1.3盲签名和群签名
这一部分介绍两种特殊的签名方法,
一、盲签名
二、群签名
1.盲签名
? 一般的数字签名中,总是要先知道了文
件内容后才签署,但有时需要对一个文
件签字,而且不想让签名者知道文件的
内容,称这样的签名为盲签名( Blind
Signature)。
? 利用盲变换可以实现盲签名
盲签名过程 图示
盲签名 ( 1)完全盲签名
? 现在假设 B担任仲裁人的角色,A要求 B
签署一个文件,但并不想让他知道文件
的内容,而且 B也没必要知道文件的内容,
他只需要确保在需要时能进行公正的仲
裁。
完全盲签名的具体过程
1)盲变换
A对要进行签名的文件和一个随机数相乘,该
随机数称为盲因子。这实际完成了原文件的隐
藏。隐藏完的文件被称为盲文件。
2)A将该盲文件送给 B.
3)签名,
B对该盲文件签名。
4)解盲变换
A对签过字的盲文件除以用到的盲因子,就得
到 B对原文件的签名,
算法说明
? 只有当签名算法和乘法是可交换的,则
上述的协议就可以真正实现,否则就要
考虑用其他方法对原文件进行盲变换。
? 为保证 B不能进行欺诈活动, 要求盲因
子是真正的随机因子,这样 B不能对任何
人证明对原文件的签名,而只是知道对
其签过名,并能验证该签名。这就是一
个完全盲签名的过程。
完全盲签名的特点
? 首先 B对文件的签名是合法的,和传统的
签名具有相同的属性。
? B不能将所签文件与实际文件联系起来,
即使他保存所有曾签过的文件,也不能
获得所签文件的真实内容。
盲签名( 2)盲签名
? 完全盲签名可以使 A令 B签任何内容的文件,
这对 B显然是很危险的,
? 为了避免恶意的使用,采用, 分割 —— 选择,
技术
? B能知道所签为何物,但他因为协议规定的限
制条件,无法进行对他有利的欺诈,或者说
进行欺诈所需代价超过其获利。
盲签名示例一
? 要确定对于进出关口的人是不是毒贩,
海关不可能对每个人进行检查。一般用
概率方法,例如对入关者抽取 1/10进行
检查。那么毒贩在大多情况下可逃脱,
但有 1/10的机会被抓获。而为了有效惩
治犯罪,一旦抓获,其罚金将大于其它 9
次的的获利。所以通过适当地调节检查
概率,就可以有效控制贩毒活动。
盲签名示例说明
? 通常人们把盲变换看作是信封,盲化文
件就是对文件加个信封。而去掉盲因子
的过程就是打开信封。
? 文件在信封中时无人能读它,而在盲文
件上签名相当于在复写纸信封上签名,
从而得到了对真文件(信封内)的签名。
盲签名( 3)盲签名算法
? D.Chaum于 1985年提出一个盲签名算法,
采用的是 RSA算法,令 B的公钥为,私钥
为,模为。
1)A要对消息 m进行盲签名,选 1<k<m,作
2)B对 t签名
3)A计算 的得
? 这是 B对 m按 RSA体制签名。
Bnmkt e ?? mo d
? ? Anmkt ded ?? mod
nktS d mod/? nmS d m od?
2.群签名
? 群体密码学
– 群体密码学是研究面向一个团体的所有成员
需要的密码体制。
– 在群体密码中,有一个公用的公钥,群体外
面的人可以用它向群体发送加密消息,密文
收到后要由群体内部成员的子集共同进行解
密。
群签名特点:
? 群签名( Group Signature)是面向群体密码学
中的一个课题分支,于 1991年由 Chaum和 Van
Heyst提出。群签名有以下几个特点:
1)只有群体中的成员能代表群体签名;
2)接收到签名的人可以用公钥验证群签名,但
不可能知道由群体中哪个成员所签;
3)发生争议时可由群体中的成员或可信赖机构
识别群签名的签名者,
? 这类签名可用于投标商务活动中。
5.2 身份识别技术
? 基本概念
? 几种常见的身份识别系统
– 通行字 (口令 )认证系统
– 个人特征的身份证明
? 基于零知识证明的识别技术
? 智能卡在个人身份证明中的作用
5.2.1基本概念
? 身份识别
– 定义
指定用户向系统出示自己身份的证明过程,
通常是获得系统服务所必需的第一道关卡。
– 身份识别技术能使识别者识别到自己的真正
身份,确保识别者的合法权益。
– 是社会责任制的体现和社会管理的需要。
常用身份识别技术
? 一类是基于密码技术的各种电子 ID身份识别技
术;
– 基于这种技术的数字证书和密码都存在被人盗窃、
拷贝、监听获取的可能性
– 解决办法:数字证书的载体可以采用特殊的、不易
获取或复制的物理载体,如指纹、虹膜等。
? 另一类是基于生物特征识别的识别技术。
电子 ID身份识别技术的常用方式
? 一种是使用通行字的方式
通行字是使时最广泛的一种身份识别方
式,比如中国古代调兵用的虎符和现代
通信网的拔入协议等。
? 另一种是使用持证的方式
持证( token)是一种个人持有物,它的
作用类似于钥匙,用于启动电子设备。
通行字技术识别办法
? 识别者 A先输入他的通行字,然后计算机确认
它的正确性。 A和计算机都知道这个秘密通行
字,A每次登录时,计算机都要求 A输入通行字。
? 要求计算机存储通行字,一旦通行字文件暴露,
就可获得通行字。为了克服这种缺陷,人们建
议采用单向函数。此时,计算机存储通行字的
单项函数值而不是存储通行字。
通行字技术认证过程
1.A将他的通行字传送给计算机
2.计算机完成通行字的单向函数值的计算
3.计算机把单向函数值和机器存储的值比较
持证( token)
? 一种嵌有磁条的塑料卡,磁条上记录有用于机
器识别的个人信息。
? 这类卡通常和个人识别号 (PIN) 一起使用
? 这类卡易于制造,而且磁条上记录的数据也易
于转录,因此要设法防止仿制。
? 为了提高磁卡的安全性,人们建议使用一种被
称作, 智能卡, 的磁卡来代替普通的磁卡,智
能卡与普通的磁卡的主要区别在于智能卡带有
智能化的微处理器和存储器。
5.2.2几种常见的身份识别系统
? 1.通行字(口令)认证系统
? 2.个人特征的身份证明
? 3.基于零知识证明的识别技术
? 4.智能卡在个人身份证明中的作用
1 通行字认证系统,( 1)基本概念
? 通行字(口令)是一种根据已知事物验
证身份的方法,也是一种最为广泛研究
和使用的身份识别方法。
? 在实际的安全系统中,还要考虑和规定
口令的选择方法、使用期限、字符长度、
分配和管理以及在计算机系统中的安全
保护等。不同安全水平的计算机系统要
求也不相同。
示例
? 在一般非保密的联机系统中,多个用户可共用一个口令,这样的安全性很低了。
? 可以给每个用户分配不同的口令,以加强这种
系统的安全性。但这样的简单口令系统的安全
性始终是不高的。
? 在安全性要求比较高的系统中,可以要求口令
岁时间的变化而变化,这样每次接入系统时都
是一个新的口令,即实现动态口令。这样可以
有效防止重传攻击。
? 还有通常的口令保存都采取密文的形式,即口
令的传输和存储都要加密,以保证其安全性
通常口令的选择原则
1,易记
2、难以被别人发现和猜中
3、抗分析能力强
通常口令的选择原则
? 为防止口令被猜中以通行短语( Pass phrass)
代替口令,通过密钥碾压( Key Crunching)
技术,如杂凑函数,可将易于记忆足够长的口
令变换为较短的随机性密钥。
? 口令分发的安全也是口令系统安全的重要环节,
通常采用邮寄方式,安全性要求较高时须派可
靠的信使传递。为了安全常常限定输入口令的
次数以防止猜测的攻击等。
( 2)口令的控制措施 1/3
? ( 1)系统消息。一般系统在联机和脱机时都显
示一些礼貌性用语,而成为识别该系统的线索,
因此这些系统应当可以控制这类消息的显示。
而口令是一定不能被现实出来的。
? ( 2)限制试探次数。不成功口令的发送一般限
制 3至 6次,超过限定次数,系统将对该用户的
身份 ID进行锁定,直到重新授权才再开启。
? ( 3)口令的使用设定有效期。一旦某个口令的
使用超过有效期将作废,重新设定新口令。
( 2)口令的控制措施 (2/3)
? ( 4)双口令系统。允许联机是一个口令,允
许接触敏感信息还需要另外一个口令。
? ( 5)规定最小长度。限制口令至少为 6到 8个
字节以上,为防止猜测成功概率过高,还可采
用掺杂或采用通行短语等加长和随机化。
? ( 6)封锁用户系统。可以对长期未联机用户
或口令超过使用期限的用户 ID封锁。直到用户
重新被授权。
( 2)口令的控制措施 ( 3/3)
? ( 7)根口令的保护。根( root)口令一般是系统管理
员访问系统所用口令,由于系统管理员被授予的权力
远大于一般用户,因此它自然成为攻击的目标。从而
在选择和使用中要倍加保护。要求必须采用 16进制字
符串、不能通过网络传送、要经常更换等。
? ( 8)系统生成口令。有些系统不允许用户自己选定
口令,而由系统生成、分配口令。系统如何生成易于
记忆又难以猜中的口令是要解决的一个关键问题。如
果口令难以记忆,则用户要写下来,则增加了暴露的
危险;另一危险是若口令生成算法被窃,则危及整个
系统的安全。
2.个人特征的身份证明
? 生物统计学正在成为自动化世界所需要
的自动化个人身份认证技术中最简单而
安全的方法。
? 它是利用个人的生理特征来实现。
? 因人而已、随身携带,不会丢失且难以
伪造,极适用于个人身份认证。
身份识别技术主要的几种情况
? ( 1)手写签名识别技术
? ( 2)指纹识别技术
? ( 3)语音识别技术
? ( 4)视网膜图样识别技术
? ( 5)虹膜图样识别技术
? ( 6)脸型识别
( 1)手写签名识别技术 (1/3)
传统的协议和契约等都以手写签名
生效。发生争执时则由法庭判决,一般
都要经过专家鉴定。由于签名动作和字
迹具有强烈的个性而可作为身份验证的
可靠依据。
( 1)手写签名识别技术 (2/3)
? 机器自动识别手写签名成为模式识别中
的重要研究之一。
? 进行机器识别要做到:
– 一签名的机器含义,
– 二手写的字迹风格(对于身份验证尤为重要)
? 可能的伪造签名有两种情况:
– 一是不知道真迹,按得到的信息随手签名;
– 二是已知真迹时模仿签名或影描签名。
( 1)手写签名识别技术 (3/3)
? 自动的签名系统作为接入控制设
备的组成部分时,应先让用户书写几个
签名进行分析,提取适当参数存档备用。
( 2)指纹识别技术
? 指纹作为身份验证的准确而可靠的手段
– 指纹相同的概率不到
– 形状不随时间变化
– 提取方便
? 将指纹作为接入控制的手段大大提高了其安全
性和可靠性。
? 缺憾
– 通常和犯罪联系在一起,人们一般都不愿接受这种
方式
– 机器识别指纹成本很高。
1010?
( 3)语音识别技术
? 每个人说话的声音都有自己的特点,人对语音
的识别能力是特别强的。
? 在商业和军事等安全性要求较高的系统中,常
常靠人的语音来实现个人身份的验证。
? 机器识别语音的系统可提高系统安全,并在个
人的身份验证方面有广泛的应用。
? 现在美国、德国等已经开发出了基于语音的识
别系统,在用于防止黑客进入语音函件和电话
服务系统。
( 4)视网膜图样识别技术
? 人的视网膜血管的图样具有良好的个人特征。
? 基本方法
– 用光学和电子仪器将视网膜血管图样纪录下来,一
个视网膜血管的图样可压缩为小于 35字节的数字信
息。
– 可根据对图样的节点和分支的检测结果进行分类识
别。
? 要求被识别人要合作允许进行视网膜特征的采
样。
? 验证效果相当好,但成本较高,只是在军事或
者银行系统中被采用 。
( 5)虹膜图样识别技术
? 虹膜是巩膜的延长部分,是眼球角膜和晶体之
间的环形薄膜,其图样具有个人特征,可以提
供比指纹更为细致的信息。
? 可以在 35到 40厘米的距离采样,比采集视网膜
图样要方便,易为人所接受。
? 存储一个虹膜图样需要 256个字节,所需的计
算时间为 100毫秒。
? 开发出基于虹膜的识别系统可用于安全入口、
接入控制、信用卡,POS,ATM等应用系统中,
能有效进行身份识别。
( 6)脸型识别
? 首先有 Harmon等人设计了一个从照片识
别人脸轮廓的验证系统。但是这种技术
出现差错的几率比较大。
? 现在从事脸型自动验证新产品的研制和
开发的公司有好多家了,在金融、接入
控制、电话会议、安全监视、等系统中
得到一定的应用。
3.基于零知识证明的识别技术
( 1)概述
? 零知识证明的基本思想
你向别人证明你知道某种事物或具有某
种东西,而且别人并不能通过你的证明
知道这个事物或这个东西,也就是不泄
露你掌握的这些信息。
? 零知识证明问题
– 最小泄露证明 (Minimum Disclosure proof)
– 零知识证明 (Zero Knowledge proof)。
最小泄露知识证明应该满足条件
现在假设用 P表示示证者,V表示验证者 。
( 1)示证者几乎不可能欺骗验证者,若 P知道
证明,则可使 V几乎确信 P知道证明;若 P不
知道证明,则他使 V相信他知道证明的概率
几近于零。
( 2)验证者几乎不可能得到证明的信息,特别
是他不可能向其他人出示此证明。
( 3)而零知识证明除了以上两个条件外,还要
满足,验证者从示证者那里得不到任何有关证
明的知识。
( 2)零知识证明的基本协议
? Quisquater等人给出了一个解释零知识证明的
通俗例子,即零知识洞穴。
( 2)零知识证明的基本协议
? 设 P知道咒语,可打开 C和 D之间的密门,
不知道者都将走向死胡同。
? 下面的协议就是 P向 V证明他知道这个秘
密,但又不让 V知道这个秘密。
协议 1
?1,V站在 A点;
?2,P进入洞中任一点 C或 D;
?3,P进入洞之后, V走到 B点;
?4,V叫 P,(a)从左边出来或 (b)从右边出来;
?5,P按照 V的要求实现 ( 因为 P知道该咒语 ) ;
?6,P和 V重复执行上面的过程次 。
协议分析
?P的确可以使 V确信他知道该咒语,但 V在
这个证明过程中的确没有获得任何关于
咒语的信息。该协议是一个完全的零知
识证明。
? 这个协议相当于下面要介绍的分割和选
择协议 (Cut and Choose),是公平分享
东西时的经典协议。
协议 2
?1,P将东西切成两半
?2,V选其中之一
?3,P拿剩下的一般 。
协议分析
?P为了自己的利益在切的时候要力求公平
分割,因接下来是由 V先选择要哪部分。
? 如果将关于零知识洞穴的协议中 P掌握的
咒语换为一个数学难题,而 P知道如何解
这个难题,就可以设计实用的零知识证
明协议。
4.智能卡在个人身份证明中的作用 (1)
? 智能卡通常被称为 IC卡、智慧卡、聪明
卡,英文名称为 smart card 或
,Integrated Circuit Card”,是 1970年由
法国人 Roland Moreno发明的,同年日本
发明家 Kunitaka Arimura取得了首项智能
卡的专利,距今已有近 30多年的历史了。
.智能卡在个人身份证明中的作用 (2)
? 定义
? 它是一种芯片卡,又名 CPU卡,是由一个或多个集
成电路芯片组成,并封装成便于人们携带的卡片,
在集成电路中具有微电脑 CPU和存储器。
? 智能卡具有暂时或永久的数据存储能力,其内容可
供外部读取或供内部处理和判断之用,同时还具有
逻辑处理功能,用于识别和响应外部提供的信息和
芯片本身判定路线和指令执行的逻辑功能。
? 计算芯片镶嵌在一张名片大小的塑料卡片上,从而
完成数据的存储与计算,并可以通过读卡器访问智
能卡中的数据。
智能卡在个人身份证明中的作用 (3)
? 日常应用
– 例如,打 IC电话的 IC卡,手机里的 SIM卡,
银行里的 IC银行卡等等。
? 安全应用
– 由于智能卡具有安全存储和处理能力,因此
智能卡在个人身份识别方面有着得天独厚的
优势。
– 最著名的是 Secue ID系统,已经被普遍应
用于安全性要求较高的系统中。
5.3 杂凑函数和消息完整性
? 5.3.1基本概念
? 5.3.2常见的单向杂凑函数
5.3.1基本概念 (1/5)
? 杂凑函数
– 也称为 Hash函数,就是把任意长的输入串变化成固
定长的输出串的一种函数。
– 用 h表示哈希函数,M表示要进行变换的数字串,则
称 H=h(M)为的杂凑值,也称杂凑码。
– 杂凑函数为单向杂凑函数。
基本概念 (2/5)
? 消息完整性
– 是指对接收的数据的任何改动都能被发现。而杂凑
函数的一个主要功能就是为了实现数据完整性的安
全需要。
? 单向的杂凑函数还可以按照其是否有密钥控制
分为两类:
– 一类有密钥控制,以 h(k,M)表示,为密码杂凑函数;
– 另一类无密钥控制,为一般杂凑函数。(只用于检
测接受数据的完整性)
基本概念 (3/5)
? 密码杂凑函数除了对数据完整性检验外,还具有身
份认证的功能,需要满足以下的要求:
– 1.输入长度是任意的。
– 2.输出长度是固定的,根据目前的计算技术应至少取
128比特长,以便抵抗生日攻击。
– 3.对每一个给定的输入,计算输出其杂凑值是很容易的。
– 4.给定杂凑函数的描述,找到两个不同的输入消息杂凑
到同一个值在计算上是不可行的,或给定杂凑函数的描
述和一个随机选择的消息,找到另一个与该消息不同的
消息使得它们杂凑到同一个值在计算上也是不可行的。
基本概念( 4/5)
? 攻击杂凑函数的典型方法
– 穷举攻击, 生日攻击和中途相遇攻击 。
– 其中穷举攻击比较直接, 但效率低 。
? 生日攻击的基本观点来自于生日问题:
– 在一个教室里最少有多少学生时,可使得在这个教
室里至少有两个学生的生日在同一天的概率不小于
50%?这个问题的答案是 23。
– 这种攻击不涉及杂凑算法的结构,可用于攻击任何
杂凑算法。
– 目前为止,能抗击生日攻击的的杂凑值至少要达到
128bit。
基本概念( 6/6)
? 中途相遇攻击是一种选择明文 /密文的攻击,主
要是针对迭代和级连的分组密码体制设计的杂
凑算法。
? 关于杂凑函数的安全性设计的理论主要有两点:
– 一个是函数的单向性;
– 二是函数影射的随机性。
5.3.2常见的单向杂凑函数
? MD4算法
? MD5算法
? SHA算法